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;
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐