Nginx优化与防盗链配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、隐藏nginx版本号
    • 1-1查看版本号
    • 1-2 隐藏版本信息
  • 二、修改用户与组
  • 三、缓存时间
  • 四、日志分割
  • 五、连接超时
  • 六、更改进程数
  • 七、网页压缩
  • 八、配置防盗链
    • 8-1 网页准备
    • 8-2 配置防盗链



一、隐藏nginx版本号

1-1查看版本号

方法一:curl命令
使用命令 curl -I http://192.168.72.40 显示响应报文首部信息。

[root@localhost ~]#curl -I http://192.168.72.40
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sun, 05 Jun 2022 11:39:20 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 31 May 2022 12:20:34 GMT
Connection: keep-alive
ETag: "62960812-264"
Accept-Ranges: bytes

方法二:在网页中查看

#切换至html目录,拖一个图片进去
cd /usr/local/nginx/html
#在网页中查看
http://192.168.72.40/hello.png

1-2 隐藏版本信息

方法一:修改配置文件

#修改配置文件
vim /usr/local/nginx/conf/nginx.conf
 http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;                              #添加,关闭版本号
    ......
#重启nginx
systemctl restart nginx
#查看版本是否被隐藏
curl -I http://192.168.72.40

方法二: 修改源码文件,重新编译安装

#切换至nginx安装包所在目录
[root@localhost ~]#cd /opt/
#停止nginx服务
[root@localhost opt]#systemctl stop nginx.service
#切换至安装目录
[root@localhost opt]#cd nginx-1.12.2/
#切换至内核目录
[root@localhost nginx-1.12.2]#cd src/core/
#进入配置文件
[root@localhost core]#vim nginx.h#define NGINX_VERSION      "hu"
#define NGINX_VER          "xxx/" NGINX_VERSION#切换至文件目录
[root@localhost core]#cd /opt/nginx-1.12.2#编译
[root@localhost nginx-1.12.2]#./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
​
#安装
[root@localhost nginx-1.12.2]#make && make install -j4#将配置文件下的之前关闭版本信息开启
[root@localhost nginx-1.12.2]#vim /usr/local/nginx/conf/nginx.conf
server_tokens on;#重启nginx
[root@localhost nginx-1.12.2]#systemctl restart nginx#查看版本信息
[root@localhost nginx-1.12.2]#curl -I http://192.168.72.40

二、修改用户与组

#修改配置文件
[root@localhost nginx-1.12.2]#vim /usr/local/nginx/conf/nginx.conf
user  hu hu;  #取消注释,修改用户为 hu ,组为 hu
#创建非登录用户
[root@localhost nginx-1.12.2]#useradd -s /sbin/nologin hu
#重启服务
[root@localhost nginx-1.12.2]#systemctl restart nginx
#查看是否修改成功
[root@localhost nginx-1.12.2]#ps aux | grep nginx

三、缓存时间

当nginx将网页数据返回给客户端后,可设置缓存时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度一般针对静态网页设置,对动态网页不设置缓存时间。

 #修改配置文件
[root@localhost nginx-1.12.2]#vim /usr/local/nginx/conf/nginx.conf
 #添加以下内容
        location ~ \.(jpg|png|bmp|gif)$ {
            root   html;
            expires 1d;
        }
#查看是否有语法错误
[root@localhost nginx-1.12.2]#nginx -t
 #重启服务
[root@localhost nginx-1.12.2]#systemctl restart nginx.service

在网页中查看服务
http://192.168.72.40/hello.png
Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

四、日志分割

随着Nginx运行时间的增加,产生的日志也会逐渐增加,为了方便掌握Nginx的运行状态,需要时刻关注Nginx日志文件。太大的日志文件对监控是一个大灾难,不便于分析排查,需要定期的进行日志文件的切割。

#写脚本
[root@localhost nginx]#vim /usr/local/nginx/nginx_log.sh #!/bin/bash
#this is for divide nginx log
d=$(date +%F -d -1day)                                       #显示前一天的时间
path="/var/log/nginx"   
pid="/usr/local/nginx/logs/nginx.pid"[ -d $path ] ||mkdir -p $path                                #创建日志文件目录
mv /usr/local/nginx/logs/access.log ${path}/www.hu.com-$d   #移动并重命名日志文件
kill -USR1 $(cat $pid)                                       #重建新日志文件
find $path -mtime +30 -delete                                #删除30天之前的日志文件#赋予权限
[root@localhost nginx]#chmod +x /usr/local/nginx/nginx_log.sh #计划任务
[root@localhost nginx]#crontab -e
​30 1 * * * /usr/local/nginx/nginx_log.sh

五、连接超时

HTTP服务有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态若接收到来自同一客户端的其他请求,服务端会利用这个被被关闭的连接,而不需要再次建立一个连接

KeepAlive在一段时间内保持打开状态,它们会在这段时间内占用资源,占用过多就会影响服务器的性能

在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。可以修改配置文件 nginx.conf,设置 keepalive_timeout超时

时间。

#修改配置文件
[root@localhost nginx]#vim /usr/local/nginx/conf/nginx.conf#keepalive_timeout  0;
    keepalive_timeout  65 180;#重启nginx服务
systemctl restart nginx.service
​
#在网页中测试
http://192.168.72.40/hello.png

六、更改进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞

#统计cpu核数
[root@localhost nginx]#cat /proc/cpuinfo |grep -c processor

#查看目前有的核数
[root@localhost nginx]#ps -aux |grep nginx
​
​#修改 Nginx 的配置文件worker_processes 参数,一般设为 CPU 的个数或者核数,在高并发的情况下可设置为 CPU 个数或者核数的 2 倍,可以查看 CPU 的核数以确定参数。
[root@localhost nginx]#vim /usr/local/nginx/conf/nginx.conf
​worker_processes  16;#重启服务并查看
[root@localhost nginx]#systemctl restart nginx.service
[root@localhost nginx]#ps -aux |grep nginx

七、网页压缩

Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能

允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装可在配置文件中加入相应的压缩功能参数对压缩性能进行优化

 #修改配置文件
  gzip on;                          #取消注释,开启gzip压缩功能
   gzip_min_length 1k;              #最小压缩文件大小
   gzip_buffers 4 16k;              #压缩缓冲区,大小为4个16k缓冲区
   gzip_http_version 1.1;           #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
   gzip_comp_level 6;               #压缩比率
   gzip_vary on;                    #支持前端缓存服务器存储压缩页面
   gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;       #压缩类型,表示哪些网页文档启用压缩功能#重启服务
[root@localhost nginx]#systemctl restart nginx.service 
​
​
3. #网页查看
http://192.168.72.40/hello.png

八、配置防盗链

在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失,也避免了不必要的带宽浪费。

Nginx 的防盗链功能也非常强大,在默认情况下,只需要进行很简单的配置,即可实现防盗链处理。

8-1 网页准备

#盗链网站主机(192.168..72.60)网页准备
#再开一台服务器,安装httpd
[root@localhost ~]#yum install -y httpd
​
​#切换至/var/www/html
[root@localhost ~]##cd /var/www/html
[root@localhost html]#vim index.html 

this is yxp "http://www.hu.com/hello.jpg"/> </body> </html> ​ #在Web源主机(192.168.72.40)添加域名 [root@localhost html]#vim /etc/hosts ​ 192.168.72.40 www.hu.com ​ #在Web源主机(192.168.72.40)添加图片 [root@localhost html]#vim /usr/local/nginx/html/index.html "game.png"> ​ #在盗链网站主机(192.168..72.60)添加域名 192.168.72.40 www.hu.com 192.168.72.60 www.yu.com ​ ​ #在盗链网站开启服务,并在网页中测试 [root@localhost html]#systemctl start httpd

8-2 配置防盗链

#在Web源主机(192.168.59.118)
[root@localhost ~]#vim /usr/local/nginx/conf/nginx.conf
​
     location ~* \.(jpg|swf)$ {
                  valid_referers none blocked *.hu.com yxp.com;
            if ( $invalid_referer ) {
                           rewrite ^/ http://www.hu.com/error.png;
                           }
}#检查语法是否有错
[root@localhost ~]#nginx -t#将盗图图片拖进去
[root@localhost ~]#cd /usr/local/nginx/html/
​
4. #重启服务
[root@localhost html]#systemctl restart nginx.service
​
5. #在网页测试
源主机网页:  http://www.hu.com/
盗链主机网页: http://www.yu.com/
​

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