+++++++++++++++++
优化参数:
+++++++++++++++++
vim /usr/local/nginx/conf/nginx.conf 文件下:
worker_processes 1;
worker_rlimit_nofile 100000;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on; (提升速类)
access_log off;
error_log error.log crit;
keepalive_timeout 10; (如果客户打开该网页,长时间没请求,占着不用。服务端可以设置多长时间,断掉该客户端连接)
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
include mime.types;
default_type text/html;
charset UTF-8;
gzip on; (压缩页面中 大于1000字节 压缩格式类型)([root@proxe conf]# vim /usr/local/nginx/conf/mime.types, application/msword doc;)
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss
text/javascript;
client_header_buffer_size 1k;(当头部信息比较大,报414错时 加上这条和下面这条 )
large_client_header_buffers 4 4k;
open_file_cache max=100000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
worker_processes 1; (cpu核心数量一致)
linux最大打开文件数量1024
worker_connections 65556;
ulimit -a (系统默认值)
...
open files 1024
++++++++++++
优化案例:
+++++++++++++
———————————————————————————————————————————
做并发连接数
1.[root@proxe conf]# vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 10000;
}
[root@proxe conf]# nginx -s reload
2.vim /etc/security/limits.conf (最下面有模板)
* soft nofile 100000
* hard nofile 100000
3.
ulimit -a
ulimit -Hn 100000
ulimit -Sn 100000
ulimit -a
[root@proxe conf]# ab -c 5000 -n 5000 http://192.168.4.5/ (OK)
压力测试:ab (yum中下一个httpd-tools)
[root@proxe conf]# ab -c 50 -n 5000 http://192.168.4.5/
——————————————————————————————————
安全设置 (屏蔽nginx版本号)
[root@proxe conf]# curl -I 192.168.4.5
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.8.0
Date: Thu, 16 Feb 2017 13:36:21 GMT
Content-Type: text/html
Content-Length: 160
Connection: keep-alive
Location: http://www.b.com/b.html
[root@proxe conf]# vim /usr/local/nginx/conf/nginx.conf
http {
server_tokens off; (加这个屏蔽版本号)
include mime.types;
default_type application/octet-stream;
[root@proxe conf]# nginx -s reload
[root@proxe conf]# curl -I 192.168.4.5
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Thu, 16 Feb 2017 13:36:42 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location: http://www.b.com/b.html
———————————————————————————————————————————————————————————
解决客户机访问头部信息过长的问题。
当访问时输入的地址头部信息过长时报414错误时,查看buffer,默认时为1,改成下面这两行就行。若是发现本来buffers就设置为4 4k时,
不用再改了,可能是别人恶意攻击,最大 不要改到4 8k)
client_header_buffer_size 1k;(当头部信息比较大,报414错时 加上这条和下面这条 )
large_client_header_buffers 4 4k;
————————————————————————————————————————————————————————————
在客户机上做缓存
在服务器中设置格式为pdf|jpg|mp3|png的文件,使打开该格式页面文件的客户机浏览器中缓存30天(一般只做静态缓存)
[root@proxe ~]# vim /usr/local/nginx/conf/nginx.conf
location ~ \.(pdf|jpg|mp3|png) ${
expires 30d;
}
[root@proxe ~]# cp knowledge\ point\(2.1\).pdf /usr/local/nginx/html/a.pdf
[root@proxe ~]# nginx -s reload
[root@host ~]# firefox http://192.168.4.5/a.pdf
在打开的浏览器(firefox)地址栏中:输入 about:cache 可以看到刚打开的页面 找到它可以看到从哪天保存到哪天。(做实验时先把浏览器缓存清空)
——————————————————————————————————
如何解决客户端访问头部信息过长的问题?
当客户端访问该网站时,输入的头部信息地址过大,出现的页面报414错时,把默认的buffer_size 1k改成4 4k.
(如果出现该错时,先不急着改,先看是否写了large_client_header_buffers 4 4k;要是写了就不用改,完全够用,预防别人是恶意攻击)
[root@proxe ~]# vim /usr/local/nginx/conf/nginx.conf
client_header_buffer_size 1k;(当头部信息比较大,报414错时 加上这条和下面这条 )
large_client_header_buffers 4 4k;
——————————————————————————————————
防止盗链
Referer:告诉服务器,从哪里来
访问新浪:可以直接访问新浪,也可从百度中链接过去,但referer不一样。
------>sina
baidu ----->sina
referer:www.baidu.com
referer:www.sina.com
www.youku.com www.letv.com
www.bird.org :所有资源(做链接),搜索功能 目的是扩大自己网站的影响和点击,让别人知道自己域名。
防止盗链
vaild_referers (有效的 允许链接)
if 拒绝的
实验操作:
location ~*\. (pdf|jpg|mp3|png|flv) ${
vaild_referers none blocked www.tarena.com;
if($invalid_referer){
rewrite ^/ http:www.a.com/a.html
}
}
————————————————————————————————————————————————————————