博客
关于我
Nginx优化与防盗链
阅读量:525 次
发布时间:2019-03-07

本文共 2973 字,大约阅读时间需要 9 分钟。

Nginx 优化与防盗链配置指南

一、隐藏版本号

Nginx 通常会在响应头中暴露版本信息,这对于安全性是一个隐患。以下是隐藏版本号的方法。

1. 查看版本号

可以通过以下命令查看当前安装的 Nginx 版本:curl -I http://服务器地址

2. 隐藏版本号方法

有两种常用方法:

方法一:修改配置文件方式编辑 Nginx 配置文件:

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

http 块内添加:

server_tokens off;

提交修改并重启 Nginx:

systemctl restart nginx

此时,运行 curl -I http://服务器地址 应无版本信息显示。

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

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

修改版本号定义:

#define NGINX_VERSION "1.1.1"#define NGINX_VER "IIS" NGINX_VERSION

在依赖项中安装:

cd /opt/nginx-1.12.0/./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_modulemake && make install

重启 Nginx 后,版本信息将被隐藏。

二、修改用户与组

默认情况下,Nginx 使用 root 用户和组进行操作,子进程使用 nginx 组。若需要更细粒度的权限控制,可修改配置文件:

编辑 Nginx 配置文件:

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

取消注释并修改用户和组:

user nginx nginx;

重启服务后,主进程将由 root 创建,子进程由 nginx 组创建。

三、缓存时间

优化缓存时间对于提升网站性能至关重要。以下是两种常见地区缓存的方法。

图片缓存编辑配置文件:

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

location 块中添加图片缓存规则:

location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {    expires 1d;}

重启 Nginx 后,图片请求将触发 1 天的缓存。

静态资产缓存默认情况下,Nginx 已能缓存静态资源。如需进一步优化,可在 location / 块内添加:

expires 30m;

四、日志切割

脚本实现

vim /fenge.sh#!/bin/bashd=$(date -d "-1 day" "+%Y%m%d")  # 显示前一天的时间logs_path="/var/log/nginx"pid_path=`cat /usr/local/nginx/logs/nginx.pid`[ -d $logs_path ] || mkdir -p $logs_pathmv /usr/local/nginx/logs/access.log ${logs_path}/kgc.com-access.log-${d}kill -USR1 $pid_path  # 重建日志文件find $logs_path -mtime +30 -exec rm -rf {} \;

设置自动切割:

crontab -e 0 1 * * * /root/fenge.sh

五、连接超时

优化指南HTTP KeepAlive 默认为 75 秒,建议减少保留时间以降低资源消耗:

vim /usr/local/nginx/conf/nginx.confkeepalive_timeout 65 180;client_header_timeout 80;client_body_timeout 80;

保存修改并重启 Nginx。

六、更改进程数

查看CPU核数

cat /proc/cpuinfo | grep -c "physical id"

设置进程数编辑配置文件:

vim /usr/local/nginx/conf/nginx.confworker_processes 2;worker_cpu_affinity 01 10;

重启服务后,Nginx 将开启相应的进程数。

七、配置网页压缩

开启 Gzip 压缩编辑配置文件:

vim /usr/local/nginx/conf/nginx.confgzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;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;

保存并重启服务后,网页传输将支持 Gzip 压缩。

八、配置防盗链

防盗链场景防盗链的目标是阻止其他网站盗用你服务器上的资源。以下是两种常见实现方式:

1. 生成备用域名/etc/hosts 中添加伪装:

echo "192.168.221.70 www.abc.com" >> /etc/hostsecho "192.168.221.80 www.def.com" >> /etc/hosts

2. 配置 Nginx 防盗链nginx.conf 中添加:

location ~*\.(jpg|gif|swf)$ {    valid_referers *.abc.com abc.com;    if ($invalid_referer) {        rewrite ^/ http://www.abc.com/error.png;        return 403;    }}

保存修改并重启 Nginx 后,盗链请求将转到指定页面。

九、FPM 参数优化

pm 参数配置编辑 PHP-FPM 配置文件:

vim /usr/local/php/etc/php-fpm.conf

设置基本参数:

pm = dynamicpm.max_children=20pm.start_servers=5pm.min_spare_servers=2pm.max_spare_servers=8

重启 PHP-FPM:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid"`

验证配置:

netstat -anpt | grep 9000

以上配置均可通过优化 Every_byte 服务器性能,同时杜绝盗链问题。在实际应用中,建议根据具体需求循环调整参数。

转载地址:http://lancz.baihongyu.com/

你可能感兴趣的文章
Objective-C享元模式(Flyweight)
查看>>
Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
查看>>
Objective-C内存管理教程和原理剖析(三)
查看>>
Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
查看>>
Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
查看>>
Objective-C实现1000 位斐波那契数算法(附完整源码)
查看>>
Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
查看>>
Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
查看>>
Objective-C实现2D变换算法(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现9x9乘法表算法(附完整源码)
查看>>
Objective-C实现9×9二维数组数独算法(附完整源码)
查看>>
Objective-C实现A*(A-Star)算法(附完整源码)
查看>>
Objective-C实现A-Star算法(附完整源码)
查看>>
Objective-C实现abbreviation缩写算法(附完整源码)
查看>>
Objective-C实现ABC人工蜂群算法(附完整源码)
查看>>
Objective-C实现activity selection活动选择问题算法(附完整源码)
查看>>
Objective-C实现AC算法(Aho-Corasick) 算法(附完整源码)
查看>>
Objective-C实现adaboost算法(附完整源码)
查看>>