Nginx服务优化与防盗链
文章目录
- 一、隐藏nginx版本号
-
- 1.1查看版本号
- 1.2隐藏版本信息
- 二、修改用户与组
-
- 三、缓存时间
- 四、日志分割
- 五、连接超时
- 六、更改进程数
- 七、网页压缩
- 八、配置防盗链
-
- 8.1 网页准备
- 8.2 配置防盗链
一、隐藏nginx版本号
1.1查看版本号
方法一:curl命令
可以在 CentOS 中使用命令 curl -I http://192.168.59.118 显示响应报文首部信息。
curl -I http://192.168.118.9
方法二:在网页中查看
1. #切换至html目录,拖一个图片进去cd /usr/local/nginx/html2. #在网页中查看http://192.168.118.9/game.png
1.2隐藏版本信息
方法一:修改配置文件
1.#修改配置文件vim /usr/local/nginx/conf/nginx.conf 2.#重启nginxsystemctl restart nginx 3.#查看版本是否被隐藏curl -I http://192.168.118.9
```handlebarshttp { includemime.types; default_type application/octet-stream; server_tokens off; #添加,关闭版本号 ......}
方法二: 修改源码文件,重新编译安装
1. #切换至nginx安装包所在目录cd /opt/2. #停止nginx服务systemctl stop nginx.service3. #切换至安装目录cd nginx-1.12.0/4. #切换至内核目录cd src/core/5. #进入配置文件vim nginx.h#define NGINX_VERSION "yxp"#define NGINX_VER "yyy/" NGINX_VERSION6. #切换至文件目录cd ../../7. #编译./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module8. #安装make && make install -j49. #将配置文件下的之前关闭版本信息开启vim /usr/local/nginx/conf/nginx.confserver_tokens on;10. #重启nginxsystemctl restart nginx11. #查看版本信息curl -I http://192.168.118.9
二、修改用户与组
1. #修改配置文件vim /usr/local/nginx/conf/nginx.confuser lili lili; #取消注释,修改用户为 lili ,组为 lili2. #创建非登录用户useradd -s /sbin/nologin lili3. #重启服务systemctl restart nginx4. #查看是否修改成功ps aux | grep nginx
三、缓存时间
当nginx将网页数据返回给客户端后,可设置缓存时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度一般针对静态网页设置,对动态网页不设置缓存时间。
1. #修改配置文件vim /usr/local/nginx/conf/nginx.conf #添加以下内容 location ~ \.(jpg|png|bmp|gif)$ { root html; expires 1d; }2. #查看是否有语法错误nginx -t3. #重启服务systemctl restart nginx.service 4.#在网页中查看服务http://192.168.59.118/game.png Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。
四、日志分割
随着Nginx运行时间的增加,产生的日志也会逐渐增加,为了方便掌握Nginx的运行状态,需要时刻关注Nginx日志文件。太大的日志文件对监控是一个大灾难,不便于分析排查,需要定期的进行日志文件的切割。
1. #写脚本vim /usr/local/nginx/nginx_log.sh #!/bin/bash#this is for divide nginx logd=$(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.yxp.com-$d #移动并重命名日志文件kill -USR1 $(cat $pid) #重建新日志文件find $path -mtime +30 -delete #删除30天之前的日志文件2. #赋予权限chmod +x /usr/local/nginx/nginx_log.sh 3. #计划任务[root@localhost nginx]#crontab -e30 1 * * * /usr/local/nginx/nginx_log.sh
五、连接超时
HTTP服务有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态若接收到来自同一客户端的其他请求,服务端会利用这个被被关闭的连接,而不需要再次建立一个连接
KeepAlive在一段时间内保持打开状态,它们会在这段时间内占用资源,占用过多就会影响服务器的性能
在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。可以修改配置文件 nginx.conf,设置 keepalive_timeout超时时间。
1. #修改配置文件vim /usr/local/nginx/conf/nginx.conf #keepalive_timeout 0; keepalive_timeout 65 180;2. #重启nginx服务systemctl restart nginx.service3. #在网页中测试http://192.168.118.9/game.png
修改配置文件
重启服务
在网页测试
六、更改进程数
在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
1. #统计cpu核数cat /proc/cpuinfo |grep processor|wc -l或cat /proc/cpuinfo |grep -c processor2. #查看目前有的核数ps -aux |grep nginx3. #修改 Nginx 的配置文件worker_processes 参数,一般设为 CPU 的个数或者核数,在高并发的情况下可设置为 CPU 个数或者核数的 2 倍,可以查看 CPU 的核数以确定参数。vim /usr/local/nginx/conf/nginx.confworker_processes 16;4. #重启服务并查看systemctl restart nginx.serviceps -aux |grep nginx
七、网页压缩
Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能
允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
1. #修改配置文件 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;#压缩类型,表示哪些网页文档启用压缩功能2. #重启服务systemctl restart nginx.service 3. #网页查看http://192.168.118.9/game.png
八、配置防盗链
在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失,也避免了不必要的带宽浪费。
Nginx 的防盗链功能也非常强大,在默认情况下,只需要进行很简单的配置,即可实现防盗链处理。
8.1 网页准备
##盗链网站主机(192.168..59.108)网页准备1. #再开一台centos服务器,安装httpdyum install -y httpd2. #切换至/var/www/htmlcd /var/www/htmlvim index.html this is yxp3. #在Web源主机(192.168.118.9)添加域名vim /etc/hosts192.168.118.9 www.yxp.com4. #在Web源主机(192.168.118.9)添加图片vim /usr/local/nginx/html/index.html 5. #在盗链网站主机(192.168.118.33)添加域名192.168.118.9 www.yxp.com192.168.118.33 www.dhc.com6. #在盗链网站开启服务,并在网页中测试systemctl start httpd
8.2 配置防盗链
1. #在Web源主机(192.168.59.118)vim /usr/local/nginx/conf/nginx.conf location ~* \.(jpg|swf)$ { valid_referers none blocked *.yxp.com yxp.com; if ( $invalid_referer ) { rewrite ^/ http://www.yxp.com/error.png; }} 2. #检查语法是否有错nginx -t3. #将盗图图片拖进去cd /usr/local/nginx/html/4. #重启服务systemctl restart nginx.service5. #在网页测试源主机网页: http://www.yxp.com/盗链主机网页: http://www.dhc.com/