lamp架构(nginx并发优化、负载均衡、平滑更新、sticky,nginx限流、配置管理)
nginx并发优化、平滑更新、sticky,nginx限流、配置管理、nginx重定向、nginx防盗链、交叉存储
nginx文件的修改已经在上一部分完成了,详情请参考上一部分哦!!!
一. nginx并发优化
auto 会根据cpu核心数分配
processes 2; //最多开启8个,将其设置为可用的CPU内核数将是一个好的开始
cpu_affinity 01 10; //cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭
cpu_affinity : 01 10; 0001 0010 0100 1000
use epoll; //使用epoll模型
修改用户进程可打开文件数限制:
/etc/security/limits.conf
nginx - nofile 65535
Linux系统级的最大打开文件数限制
fs.file-max = 188414 //和内存容量相关
修改网络内核对TCP连接的有关限制
net.ipv4.ip_local_port_range = 1024 65535
限制接收新 TCP 连接侦听队列的大小
net.core.somaxconn = 2048
启用tcp连接timewait快速回收和重用
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
二. nginx均衡实现负载
在server1上:
/usr/local/openresty/nginx/sbin/nginx -s stop
systemctl start nginx
vim nginx.conf
修改以下内容:



打开.base_profile文件

nginx -t
nginx -s reload
在server2和3上:
在server2上:
下载httpd服务并开启


在server3上:
将server1的nginx传输到server3上:









在真机上:


解析之后我们在真机curl
可以看到server2,server3交替出现
这就是负载均衡!!!!!!!!!
负载均衡的意义就在于是的多个服务器的负载都在合理的范围,有效避免服务器负荷过大而出现问题。
比如我们玩游戏时进入不同的区,每一个区就相当于一个服务器,我们自己选择或者被分配进入的不同的区从而实现负载均衡。
三. nginx 平滑升级
本次实验我们是将19版本升级为20版本我们更新服务器时有可能会使得顾客无法访问服务器,所以平滑更新就显得格外重要,使得服务不会停摆,也能进行更新。
我们先19版本







然后进行平滑更新的准备工作:
下载好20的安装包后:
更改gcc文件的内容:




为了给后续的平滑降级作准备,先备份19版本的nginx文件

然后将20的nginx文件转译到19的目录下:


此时我们输入 /opt/nginx/sbin/nginx -v 检查版本,已经变成了19版本
再查看一下运行版本:

我们查看进程,可以看出两个版本的nginx在同时运行,所以我们需要kill掉之前的进程:

这样平滑升级就已经完成:
接下来我们进行平滑降级:





降级完成!!!!!!!
四. nginx限流



我们给要访问的目录添加一个图片以观察访问情况:


限制之前:
失败访问次数为0:

限制之后失败访问次数为1:

五. nginx配置管理
1. 自动索引:下载方便



2. Nginx expire缓存配置: 缓存可以降低网站带宽,加速用户访问



3. 日志轮询
在该文件中写入的内容:
./nginx_log.sh执行该文件:

再加入crontab定时任务
00 00 * * * /opt/scripts/nginxlog.sh &> /dev/null
为了安全,日志目录不需要给你nginx用户访问权限
chmod -R 700 /usr/local/nginx/logs
4. 禁用不必要的日志记录,以节省磁盘IO的消耗
location ~ .*.(js|jpg|jpeg|png|css|bmp|gif)$ {
access_log off;
}
location /download/ {
limit_conn addr 1;
#limit_rate 50k;
limit_req zone=one burst=5 nodelay;
autoindex on;
}
location ~ .*\.(gif|jpg|png)$ {
expires 365d;
root html;
access_log off;
}
curl -I http://172.25.10.1/download/vim.jpg 访问的时候,access.log不计入
站点目录和文件的限制
location ~ ^/images/.*.(sh|php)$ {
deny all;
}
5. 解决中文乱码
charset utf-8;
写入http{
}中
由乱码:

变成:

6. 限制IP
location /download {
deny 172.25.10.10;
allow 172.25.10.0/24;
deny all;
}
if ($remote_addr = 172.25.10.254) {
return 403;
}
更多推荐
所有评论(0)