Nginx 优化及安全配置

通过给nginx.conf文件加入一些规则可以起到优化配置及加固安全方面的作用~例如屏机器人或垃圾留言。

一,首先开始优化配置

执行 grep processor /proc/cpuinfo | wc -l //检查VPS的CPU是多少核,例如输出结果是1,就是一核
执行 ulimit -n //查看核的限制,例如1G内存的VPS,得到的结果一般时1024;此外可以执行 ulimit -Sn 查看的是软限制,ulimit -Hn 查看的是硬限制。

执行 sudo vi /etc/nginx/nginx.conf

worker_processes 1; //将1改为VPS的实际CPU核芯数
worker_connections 1024; //1024改为核的限制数(即ulimit -n后输出的结果)

缓冲区优化
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k/8k; //默认为4或8K,如果这里的数字设置低于或大于默认值,当你在登录网站后台时就会得到“400 Bad Request – request header or cookie too large” 这个错误。

超时优化配置

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

Gzip 优化配置

gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;

此外你还可以到站点配置文件中的Server 模块里加入以下规则:

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}

以上规则加入到http{}模块里面
执行 sudo service nginx restart //修改配置文件后重启 Nginx

二,安全配置
如果站点配置文件不是nginx.conf,而是独立的站点配置文件,哪么下面的规则是加入到/etc/nginx/sites-available目录下对应的站点配置文件中的Server{}模块中。

# Only requests to our Host are allowed
# if ($host !~ ^($server_name)$ ) {
# return 444;
# }

# Only allow these request methods
# Do not accept DELETE, SEARCH and other methods
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}

# Deny certain Referers
if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) ) //里面屏蔽的关键字可修改
{
return 404;
return 403;
}

……

参考文章:
https://www.digitalocean.com/community/tutorials/how-to-optimize-nginx-configuration
https://calomel.org/nginx.html
http://www.acloudtree.com/how-to-deny-hosts-using-nginx/
http://www.rackspace.com/knowledge_center/article/installing-nginx-and-php-fpm-setup-for-nginx

发表评论或回复

*选项为必填项,您的电子邮件地址不会被公开。

*
*