+++++++++++++++++

优化参数:

+++++++++++++++++


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

}

}


————————————————————————————————————————————————————————