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

你可能感兴趣的文章
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
Nmap扫描教程之Nmap基础知识
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NMF(非负矩阵分解)
查看>>
NN&DL4.1 Deep L-layer neural network简介
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>