main 全局设置 所有区域都生效 server 主机设置 uptream 负载均衡服务器设置 设置后端服务器的 location URL匹配特定位置的设置 匹配网页 关系: server继承main location继承server upstream既不传也不继承 |
调整内核参数:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
vim / etc / sysctl.conf 这里面调<br>net.ipv4.tcp_max_tw_buckets = 6000 / / 时间等待计时器(坚持,保活,重传) net.ipv4.ip_local_port_range = 1024 65000 / / 开启随机端口的数量 32768 - 65535 net.ipv4.tcp_tw_recycle = 1 / / 时间等待计时器加速回收 net.ipv4.tcp_tw_reuse = 1 / / 时间等待计时器复用 net.ipv4.tcp_syncookies = 1 / / syn溢出用cook处理 net.core.somaxconn = 262144 / / 同时发起tcp的连接数量 net.core.netdev_max_backlog = 262144 / / 网络收口接包速度,表示列队长度 net.ipv4.tcp_max_orphans = 262144 / / 设置系统中有多连接同时连接到我的,防止简单的ddos net.ipv4.tcp_max_syn_backlog = 262144 / / 尚未收到客户端确认消息的连接的请求, 128M 内存 = 1024 net.ipv4.tcp_synack_retries = 1 / / 表示内核放弃连接之前,syn + ack的包的总量 net.ipv4.tcp_syn_retries = 1 / / 放弃连接之前syn的总量 net.ipv4.tcp_fin_timeout = 1 / / 最后时间等待计时器的超时时间 net.ipv4.tcp_keepalive_time = 30 / / 消息发送的频度(单位:小时) |
防盗链:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
在server模块下 第一种方法:( zip 和rar是必须写的) location ~ * .(jpg|png|gif|flv| zip |rar){ valid_referers none blocked * .han.com * .han.cn; if ($invalid_referer) { rewrite ^ / http: / / www.han.com / img / error.gif; / / 当引用了我的图片就把你引到我的错误的图片 #return 403; //地址重写 } } 第二种方法: location / images { root / web / www / han.com vaild_referers none blocked * .han.com * .han.cn; if ($invalid_referer) { return 403 ; } } |
Fastcgi调优:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
fastcgi的调优必须在http模块里面!!! fastcgi_cache_path / usr / local / nginx / fastcgi_cache levels = 1 : 2 keys_zone = TEST: 10minactive = 5m ; / / / usr / local / nginx / fastcgi_cache 硬盘路径 leves 目录结构等级 keys_zone关键字存储的区域 inactive非活动的删除时间分钟 fastcgi_connect_timeout 300 ; 连接到后端的超时时间(防火墙new包) fastcgi_send_timeout 300 ; 完成握手之后已经建立连接,传送请求的时间 fastcgi_read_timeout 300 ; 后端服务器收到的应答的时间,没有回应 fastcgi_buffer_size 64k ; 应答信息的第一个应答包头,第二个包开始才是数据 fastcgi_buffers 4 64k ; 应答请求,请求页面的大小。PHP产生的页面 256k 把这个数据分成 4 个 64k 来存储; 300k 剩下的 44k 放到fastcgitemp。取中上值 fastcgi_busy_buffers_size 128k ; 当繁忙的时候临时开一个空间是前面的 2 倍就可以 fastcgi_temp_file_write_size 128k ; 写入缓存文件时缓存快的大小 指定页面代码的缓存时间: fastcgi_cachek TEST; 缓存名称 表示开启 fastcgi_cache_valid 200 302 1h ; 指定应答代码的缓存时间 fastcgi_cache_valid 301 1d ; 指定应答代码的缓存时间 fastcgi_cache_valid any 1m ; 指定应答代码的缓存时间 |
proxy四层代理:动态调优
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
location / { proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; proxy_redirect off; proxy_set_headeer HOST $host; #设置后端服务器的真实IP地址 proxy_set_header X - Real - IP $remote_addr; proxy_set_header X - Forwarded_For &proxy_add_x - forwarded_for; client_body_buffer_size 128k ; #页面缓冲区的大小,本地保存的大小 proxy_connect_timeout 90 ; 后端服务器发起握手等候响应的时间 proxy_rend_timeout 90 ; 建立连接后等待后端服务器响应时间 / 后端等候处理的时间 proxy_sead_timeout 90 ; 规定时间内后端服务器必须响应,否则断开 proxy_buffer_size 4k ; proxy_buffers 4 32 ; 缓冲区个数和大小 proxy_busy_buffers_size 64k ; 系统繁忙时 buffer 的临时大小,官方要求proxy_buffers * 2 proxy_temp_file_write_size 64 ; proxy临时文件的大小 } |
Gzip:
1
2
3
4
5
6
7
8
9
|
#传递数据的时候需要打个包,这样会让零碎的数据打包成一个包,增加我们的传输速度 #--http_gzip_static_module 加这个模块就可以实现数据的整合和打包 gzip on; gzip_min_length 1k ; #设置压缩的页面你的最小字节数(公司页面最小值就行) gzip_buffers 4 16k ; #表示申请4个16k空间来压缩的缓存 gzip_http_version 1.1 ; #用来识别http的版本 gzip_comp_level 2 ; #用来指定gzip压缩级别(1最小压缩比率 效率高,9最大压缩比率,效率低) gzip_types text / plain application / x - javascript text / css application / xml; #用来指定压缩类型(默认使用的html类型) gzip_vary on; #让前端缓存服务器缓存,经过压缩后的数据(Varnish,Nginx-cache,Squid) |
events模块:
1
2
3
4
5
6
7
8
9
10
|
events { worker_connections 8192 ; #nginx 中每个进程最大的处理连接数量 只能是2的次方数 use epoll #使用epoll网络模型 } 网络模型: epoll:linux内核为处理大批量文件描述符 select poll 标准模式 kqueue poll 高性能模式 BSD用kqueue linux用poll rtsin / dev / poll 高性能模式 |