main 全局设置 所有区域都生效
server 主机设置
uptream 负载均衡服务器设置 设置后端服务器的
location URL匹配特定位置的设置 匹配网页
关系:
server继承main
location继承server
upstream既不传也不继承
|
Adjust the kernel parameters:
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
/
/
消息发送的频度(单位:小时)
|
Security chain:
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
; 指定应答代码的缓存时间
|
four proxy agent: Dynamic Tuning
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 module:
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 高性能模式
|