Nginx 优化

目录

Nginx 优化

1. 隐藏版本号

(1) 原因

(2) 版本号查看

(3) 隐藏方法

2. 修改用户与组

3. 缓存时间

4. 日志分割

5. 连接超时

6. 配置网页压缩


Nginx 优化



1. 隐藏版本号



(1) 原因

为了安全,如果暴露版本信息,黑客可以通过版本信息得知该版本存在的漏洞,进而对服务器进行攻击。隐藏版本信息可以避免黑客有的放矢的进行破坏。

(2) 版本号查看


① nginx -v (仅限 web 浏览器)

[root@c7-1 ~]#nginx -v
nginx version: nginx/1.12.2

② curl -I

[root@c7-1 ~]#curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Fri, 08 Oct 2021 12:29:08 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 04 Oct 2021 12:54:14 GMT
Connection: keep-alive
ETag: "615af976-264"
Accept-Ranges: bytes

(3) 隐藏方法


① 修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

http {
......
    server_tokens off;    #添加此行内容,关闭版本号的显示
......

[root@localhost ~]# systemctl restart nginx

② 修改源码文件,重新编译

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

http {
......
    #server_tokens off;    #注释此行内容,开启版本号的显示
......

[root@localhost ~]# vim /opt/nginx-1.12.2/src/core/nginx.h

##修改版本号和名称,可伪装成其他服务(例如 apache、mysql 等)
#define NGINX_VERSION      "5.7.20"
#define NGINX_VER          "mysql/" NGINX_VERSION

#重新编译
cd /opt/nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make -j 4 && make install
systemctl restart nginx

2. 修改用户与组

[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf

user  nginx nginx;         #第二行,取消注释,修改用户为nginx,组为nginx

[root@localhost nginx-1.12.0]# systemctl restart nginx
[root@localhost nginx-1.12.0]# ps aux | grep nginx
#主进程由root创建,子进程由nginx创建
root      42095  0.0  0.0  20500   628 ?        Ss   23:29   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     42096  0.0  0.0  22948  1404 ?        S    23:29   0:00 nginx: worker process
root      42103  0.0  0.0 112676   976 pts/0    R+   23:29   0:00 grep --color=auto nginx

3. 缓存时间

[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf

......
    server {
    ......
        location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {   #新建location,以图片作为缓存对象
            root   html;
            expires 1d;                              #指定缓存时间为1天,一天半为1d12h
        }
    ......
    }
......

[root@localhost nginx-1.12.0]# systemctl restart nginx
[root@c7-1 /usr/local/nginx/html]#ls
50x.html  index.html  index.html.bak  test.jpg

[root@c7-1 /usr/local/nginx/html]#vim index.html 

#加入图片
</h1>
<img src="test.jpg"/>
</body></html>

4. 日志分割

[root@c7-1 /opt]# vim log_cut.sh 

#!/bin/bash
#Filename:log_cut.sh

lastday=$(date -d "-1 day" +%Y%m%d)
#显示前一天的时间
logs_path=/var/log/nginx
pid_path=/usr/local/nginx/logs/nginx.pid

[ -d $logs_path ] || mkdir -p $logs_path
#创建日志文件目录
mv /usr/local/nginx/logs/access.log $logs_path/test.com_access.log-$lastday
mv /usr/local/nginx/logs/error.log $logs_path/test.com_error.log-$lastday
#移动并重命名日志文件

kill -USR1 $(cat $pid_path)
#重建新日志文件
find $logs_path -mtime +30 -exec rm -rf {} \;
#删除30天之前的日志文件

5. 连接超时

[root@c7-1 ~]#vim /usr/local/nginx/conf/nginx.conf

http {
......
    keepalive_timeout  65 180;
    client_header_timeout 80;
    client_body_timeout 80;
......
}

[root@localhost nginx]# systemctl restart nginx

6. 配置网页压缩

vim /usr/local/nginx/conf/nginx.conf
......
http {
    ......
    gzip on;                  #开启 gzip 压缩功能
    gzip_min_length 1k;       #压缩阈值,最小压缩为 1k
    gzip_buffers 4 16k;       # buffer 大小为 4 个 16k 缓冲区大小
    gzip_http_version 1.1;    #压缩版本(默认不设置)
    gzip_comp_level 6;        #压缩比率,最小为 1,处理速度快,传输速度慢,9 最大压缩比,处理速度慢,传输速度快(建议5-6)
    gzip_disable "MSIE [1-6]\.";  #配置禁用 gzip 条件,支持正则,表示 ie6 以下不启用 gzip
    gzip_vary on;  				  #支持前端缓存服务器存储压缩页面
    gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javascript application/json;
    #支持的压缩类型
    ......
}

nginx -t
cd /usr/local/nginx/html/   	 #首页中插入 cat.jpg 图片进行测试

vim index.html
	<h1>Welcome to nginx!</h1>
	<img src="test.jpg"/>		 #插入一行
	
systemctl restart nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值