nginx配置优化
#定义Nginx运行的用户和用户组user www www;
关于cpu的设置,可以查看这个链接:http://blog.csdn.net/u011957758/article/details/50959823
$request_time的单位是秒。 实战: 103.233.128.154 - - [10/Nov/2017:11:03:05 +0800] "GET /data/questionnaire?callback=jQuery111105610104849438594_1510282984659&pid=cnu&u=b&mode=c&_id=5a0516c71b0aebcecc985469&_=1510282984660 HTTP/1.1" 200 187 "http://csproduct.cmr.net.cn/nwb/webdata/pxbz/m/dcwjwt?pid=cnu&productId=028&paperid=5a0516c71b0aebcecc985469&firstBlockId=59bb8ca238d2116827ea9cdb&firstIndex=2&blockId=5a0516c7e7c4e1b8a0058ad2&secIndex=11&status=1" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0" "0.014" 103.233.128.154 $remote_addr 远程客户端地址 - - - $remote_user 远程客户端用户名称 [10/Nov/2017:11:03:05 +0800] [$time_local] 访问时间和时区 GET /data/questionnaire?callback=jQuery111105610104849438594_1510282984659&pid=cnu&u=b&mode=c&_id=5a0516c71b0aebcecc985469&_=1510282984660 HTTP/1.1 $request 请求信息 200 $status 状态码 187 $body_bytes_sent 字节为单位 发送字节大小 http://csproduct.cmr.net.cn/nwb/webdata/pxbz/m/dcwjwt?pid=cnu&productId=028&paperid=5a0516c71b0aebcecc985469&firstBlockId=59bb8ca238d2116827ea9cdb&firstIndex=2&blockId=5a0516c7e7c4e1b8a0058ad2&secIndex=11&status=1 $http_referer 从哪个页面访问过来的,可以防盗链在这里设置 Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 $http_user_agent 用户所使用的浏览器信息. $request_time 请求时间单位为秒 $http_x_fordwarded_for 此nginx当做web的时候,当前端有代理服务器时,记录客户端的地址,前提是代理服务器上设置了proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for #设定访问日志路径 |
虚拟主机配置文件的优化
upstream backend { #配置后端服务器的权重。如果在30秒内请求失败两次自动剔除 server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s; server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s; server 127.0.0.1:8082 weight=1 max_fails=2 fail_timeout=30s; server 127.0.0.1:8083 weight=1 max_fails=2 fail_timeout=30s; } #虚拟主机配置 server { #侦听80端口 listen 80; #定义使用www.abc.com访问 server_name www.abc.com; #设定本虚拟主机的访问日志 access_log logs/access.log main; root /data/webapps/www; #定义服务器的默认网站根目录位置 index index.php index.html index.htm; #定义首页索引文件的名称 #默认请求 location ~ /{ root /data/webapps/www; #定义服务器的默认网站根目录位置 index index.php index.html index.htm; #定义首页索引文件的名称 #以下是一些反向代理的配置. proxy_next_upstream http_502 http_504 error timeout invalid_header; #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。 proxy_redirect off; #允许重新定义或者添加发往后端服务器的请求头 proxy_set_header Host $host; #把真实客户端IP写入到请求头X-Real-IP,在NginxBackend输出$http_x_real_ip获取到了真实客户端IP #而Nginx Backend的“$remote_addr”输出为最后一个反向代理的IP; proxy_set_header X-Real-IP $remote_addr; #把请求头中的X-Forwarded-For与$remote_addr用逗号合起来, #如果请求头中没有X-Forwarded-For则$proxy_add_x_forwarded_for为$remote_addr。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #设置代理使用的HTTP协议版本。默认使用的版本是1.0 proxy_http_version 1.1; proxy_set_header Connection ""; #设置允许客户端请求正文的最大长度。 client_max_body_size 100m; #请求转向后端定义的均衡模块,和前面的指定对应。 proxy_pass http://backend; # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。 location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root /data/webapps/www; #expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力,在浏览器保存该类型文件的天数。 expires 3d; } #PHP脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { root /root; FastCGI_pass 127.0.0.1:9000; FastCGI_index index.php; FastCGI_param SCRIPT_FILENAME /data/webapps/www$FastCGI_script_name; include FastCGI_params; } #设定查看Nginx状态的地址 location /NginxStatus { stub_status on; } } } |
主要涉及开启的线程数量,绑定CPU,启动压缩,如果有代理还涉及到后后端服务器的交互时间等优化