Nginx服务优化与防盗链

目录

1. 隐藏版本号

2.修改用户和组

3.缓存时间

4.日志切割

5.连接超时

6.更改进程数

7.配置网页压缩

8.配置防盗链


1. 隐藏版本号

隐藏版本号可以防止有人试图从某某版本的漏洞攻击网站

方法一:

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

在http模块下

http {

        include         mime.types;

        default_type application/octet-stream;

        server_tokens off;                         #添加,关闭版本号

......

}

重启nginx服务

systemctl restart nginx 

直接打开网站访问本机ip,F12  查看版本

方法二:

vim /opt/nginx-1.12.0/src/core/nginx.h

#define NGINX_VERSION "???"                                 #修改版本号

#define NGINX_VER "notfound  " NGINX_VERSION                   #修改服务器类型

cd /opt/nginx-1.12.0/ 

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

make && make install

vim /usr/local/nginx/conf/nginx.conf

http {

        include                mime.types;

        default_type        application/octet-stream;

        server_tokens on;

......

}

重启服务

systemctl restart nginx

和方法一的测试方法一样

2.修改用户和组

修改用户和组可以限制nginx进程的权限,减少潜在的风险,有助于隔绝nignx进程和其他资源

vim /usr/local/nginx/conf/nginx.conf

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

systemctl restart nginx

ps aux | grep nginx

主进程由root创建,子进程由nginx创建

3.缓存时间

设置缓存时间可以减少服务器负载,提高网站加载速度,节省宽带消耗,提高网站稳定性

vim /usrl/lcoal/nginx/conf/nginx.conf

http{

.......

        server {

        ……

                location / {

                        root   html;

                        index  index.html  index.htm;

}

                location ~ \.(gif|jpg|jepg|png|bmp|ico)$ {         #加入新的 location,以图片作 为缓存对象

                        root   html;

                        expires  1d;                      #指定缓存时间为1天

                }

......

        }

}

在 niginx html文件下放入一个图片

重启服务

sysyemctl restart nginx

在Linux系统中,打开浏览器,同样的输入地址,后面加上图片的名字

查看缓存时间

Cache-Control:max-age=86400

4.日志切割

日志切割更方便与管理日志文件大小,提高nginx日志可读性,还能节省存储空间

不同于其他优化过程,日志切割直接在脚本中完成

到一个目录下

vim /opt/rzfg.sh

#!/bin/bash

day=$(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}/kgc.com-access.log-$day      #移动重命名

kill -USR1 $(cat $pid_path)

find $logs_path -mtime +30 -exec rm -rf {} \;

#或者  find $logs_path -mtime +30 | xargs rm -rf

保存并退出,给脚本文件赋权

chmod +x /opt/fenge.sh

/opt/fenge.sh

创建周期性计划任务,于天凌晨1点进行

crontab -e

0 1 * * * /opt/rzfg.sh

5.连接超时

设置连接超时可以避免资源浪费、提高服务器稳定性、防止恶意攻击

也在主配置文件中

vim /usr/local/nginx/conf/nginx.conf

http {

……

        keepalive_timeout  65  180;                #三次握手的超时时间

        client_header_timeout  80;                #等待客户端发送请求头的超时时间

        client_body_timeout  80;                #设置客户端发送请求体的超时时间

……

}

重启 nginx 服务

6.更改进程数

通过更改进程数可以提高并发能力、优化资源利用、平衡负载

根据自己的服务器cpu核数来看

如果不知道自己的cpu有机核可以

cat /proc/cpuinfo  |  grep -c "physocal  id"        #会直接显示cpu的核数

然后我们继续修改主配置文件

vim /usr/local/nginx/conf/nginx.conf

worker_processes   2;                #修改为核数相同或者2倍

worker_cpu_affinity  01  10;        #设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100                                                       1000

重启 nginx 服务

7.配置网页压缩

网页压缩主要用于减少传输数据的大小,从而提高网页加载速度和节省带宽。通过压缩网页内容(如HTML、CSS、JavaScript等),可以显著减少客户端和服务器之间的数据传输量,进而提升用户体验和网站性能。

主配置文件

vim /usr/local/nginx/conf/nginx.conf

http {

……

        gzip on;                                        #取消注释,开启gzip压缩功能

        gzip_min_length  1k;                    #最小压缩文件大小

        gzip_buffers  4  64k;                     #压缩缓冲区,大小为4个64k缓冲区

        gzip_http_version  1.1;                 #压缩版本

        gzip_comp_level  6;                      #压缩比率  1 压缩到最大,速度快,9压缩到最小,速度慢

……

}

重启 nginx 服务

8.配置防盗链

防盗链主要用于防止其他网站直接链接到你的服务器上的资源(如图片、视频等),从而减少不必要的带宽消耗和服务器负载。通过配置Nginx的防盗链功能,你可以控制哪些网站可以访问你的资源,哪些网站被禁止访问。

主配置文件

vim /usr/local/nginx/conf/nginx.conf

http {

……

        server {

        ……

                location ~* \.(jpg|gif|swf)${

                        valid_referers none blocked *.123.com 123.com;

                        if ( $invalid_referer ){

                                rewrite ^/ http://www.123.com/error.png;

                                return 403;

                }

        }

        ……

}

……

}

你可能感兴趣的:(nginx,运维)