首页
技术知识库
Task工作计划
网站简介
DON框架
后台管理
文章分类
JAVA
框架知识
操作系统
容器相关
数据库层
优化技术
界面编程
网络编程
开发工具
GO语言
其他
读书随笔
观影随笔
每日随笔
APP
nginx反射代理及部分参数解释
所属分类
:[容器相关] |
创建时间
:2015-01-16 |
文章属性
:转载 |
文章来源
:http://windfly.cn |
作者
:windfly
server<br /> {<br /> listen 80;<br /> server_name 192.168.1.104;<br /> <br /> location / {<br /> proxy_pass http://mysvr;<br /> }<br /> <br /> #以下是一些反向代理的配置可删除.<br /> proxy_redirect off;<br /> #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP<br /> proxy_set_header Host $host;<br /> proxy_set_header X-Real-IP $remote_addr;<br /> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br /> client_max_body_size 10m; #允许客户端请求的最大单文件字节数<br /> client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,<br /> proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)<br /> proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)<br /> proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)<br /> proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小<br /> proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置<br /> proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)<br /> proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传<br /> <br /> <br /> <br /> nginx 的 upstream目前支持 4 种方式的分配 <br /> 1)、轮询(默认) <br /> 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 <br /> 2)、weight <br /> 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 <br /> 2)、ip_hash <br /> 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 <br /> 3)、fair(第三方) <br /> 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 <br /> 4)、url_hash(第三方)<br /> <br /> <br /> <br /> upstream的 fail_timeout和max_fails<br /> pstream的这2个参数是配合使用的,用来判断负载均衡upstream中的某个server是否失效。在fail_timeout的时间内,nignx与upstream中某个server的连接尝试失败了max_fails次,则nginx会认为该server已经失效。在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。<br /> fail_timeout默认为10秒,max_fails默认为1。是指在10秒内nginx与后端server连接失败尝试只有一次,如果在10秒内nginx与后端的连接失败达到一次,nginx认为这个server已失效,在接下来的10秒内,nginx将不会分发请求到这台后端。<br /> 如果max_fails=0,即关闭后端服务器健康检查,如果权重一样,那么每次请求都会有机会发到后端不可用的服务器。<br /> 另外,fail_timeout设置的时间对响应时间没影响,这个响应时间是用接下来的proxy_connect_timeout和proxy_read_timeout来控制。<br /> <br /> proxy_connect_timeout<br /> nginx与后端连接的超时时间,单位为秒,默认为60秒。我们在nginx错误日志里面看到的(110: Connection timed out),就是指nginx与后端连接已经超时。<br /> <br /> proxy_read_timeout<br /> 建立连接后,nginx等候读取后端服务器响应的时间,默认为60秒。在一些比较繁忙的后端,比如线程数经常达到峰值了的tomcat,这个值注意不要设得太低,虽然线程数已经用光,但请求已经进入待队列之中。<br /> <br /> proxy_send_timeout<br /> nginx转发请求到后端的超时时间,默认为60秒,在这段时间内nginx没将请求数据发到后端将关闭连接。<br /> 这个在网站有比较多像表单(post)之类的需要留意一下。<br /> <br /> #设定查看Nginx状态的地址 <br /> location /NginxStatus { <br /> stub_status on; <br /> access_log on; <br /> auth_basic "NginxStatus"; <br /> auth_basic_user_file conf/htpasswd; <br /> } <br />
返回