内核参数优化
修改/etc/sysctl.conf
文件,然后执行sysctl -p
,使修改生效
net.ipv4.tcp_tw_reuse =
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 61000
net.ipv4.tcp_rmem = 4096 32768 262142
net.ipv4.tcp_wmem = 4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
nginx命令行控制
nginx二进制文件
/usr/local/nginx/sbin/nginx
参数:
-c:指定conf文件启动nginx
-t:不启动nginx,测试配置文件是否有错误
-v:显示版本信息
-s stop:强制停止nginx服务
-s quit:处理完当前所有请求再停止服务
-s reload:重新加载配置文件启动nginx
conf文件的配置项
include
:嵌入其他配置文件
多核cpu,设置完worker_processes
后,需要再使用worker_cpu_affinity
,让每一个worker绑定不同的cpu
ngx_http_core_module模块
层级:
--http
----server
------location
------location
----server
------location
在server配置块下,
listen用于指定监听的ip地址和端口
server_name用于指定主机名称
server_name_in_redirect表示重定向请求时使用server_name里配置的第一个主机名或使用请求本身的Host头部
location会尝试根据用户请求中的URI来匹配location后面的表达式.如果可以匹配,就选择该location块中的配置来处理请求.
匹配方式:
=:表示完全相同
~:大小写字母敏感,正则匹配
~*:忽略字母大小写,正则匹配
^~:只匹配前半部分
location /:匹配所有
文件路径的定义:
root:
定义资源文件相对于HTTP请求的根目录
location /down/ {
root /opt/web/;
}
在上面的例子中,如果有个请求的URI是/down/index/abc.html,那么web服务器将会返回服务器上/opt/web/down/index/abc.html文件的内容
alias:
将location没有匹配到的URI,追加到alias设置的路径后面
使用alias实现上面的设置,如下:
location /down/ {
alias /opt/web/down/;
}
index:
index后可以跟多个文件参数,nginx会按照顺序来访问这些文件
location / {
root path;
index /index /html/index/php /index.php;
}
error_page:
当某个请求返回错误码时,如果匹配上了error_page中设置的code,则重定向到新的URI中.
error_page 404 /404.html
error_page 502 503 504 /50x.html
虽然重定向了URI,但是返回的错误码还是原来的,用户可以通过下面的方法更改返回的错误码
error_page 404 =200 /404.html
error_page 502 =200 /50x.html
或者可以不指定确切的错误码,而是有重定向后的实际处理结果来决定
error_page 502 = /50x.html
proxy_pass:
转发请求