博客
关于我
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/

你可能感兴趣的文章
Numpy如何使用np.umprod重写range函数中i的python
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
查看>>
OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
查看>>
OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
查看>>
OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
查看>>
OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
查看>>
OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
查看>>
oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
查看>>
OAuth2:项目演示-模拟微信授权登录京东
查看>>
OA系统多少钱?OA办公系统中的价格选型
查看>>
OA系统选型:选择好的工作流引擎
查看>>
OA项目之我的会议(会议排座&送审)
查看>>
OA项目之我的会议(查询)
查看>>
Object c将一个double值转换为时间格式
查看>>