nginx反向代理配置及常见指令
nginx反向代理配置及常见指令
nginx配置文件: /usr/local/nginx1.16.1/conf/nginx.conf
nginx.conf默认的server配置:
server{ listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html;}
配置location时,优先配置子目录,最后是默认根目录。比如下面,先配置/ent-boot/,这样,如果用户的请求地址是/ent-boot/这个路径,nginx当扫描到这个/ent-boot/后,就直接做转发不再继续扫描配置了。其中,proxy_pass:表示代理转发,将请求转发到指定的url上。
server { listen 9999; server_name localhost; location /ent-boot/ { proxy_pass } location / { root / index index.html index.htm; }}
proxy_pass指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式。例如如下配置:
server { listen 80; server_name buguge.com buguge.com; location /proxy/ { proxy_pass ***; }}
当访问 时,
proxy_pass: #则,代理到URL: → #则,代理到URL: → #则,代理到URL: → #则,代理到URL: → proxy_pass 后的url都以“/”结尾。参考
如果反向代理到别的域名的网站上,要指定请求头的Host的值为那个域名,否则会导致代理出现死循环。参考
要实现负载均衡,要使用upstream指令。
upstream emei_server { ip_hash; server 10.0.2.75:9083 weight=10 max_fails=0; server 10.0.2.76:9083 weight=10 max_fails=0;}server{ ... location / { proxy_pass proxy_set_header Host $host; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header remote-addr $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 512k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffers 4 256k; proxy_buffer_size 256k; proxy_next_upstream error timeout invalid_header proxy_busy_buffers_size 256k; } }
ip_hash:可以确保访问一个被同一台服务器处理, 除非分配的server宕机。 如果宕机 则请求被发往其他的机器。适用于需要登录并且session仅保存在自己节点里的站点。
参考:Nginx的upstream反向代理、负载均衡详解nginx负载均衡的策略有轮询、权重轮询、ip_hash、url_hash等。参考:nginx配置-upstream https://jianshu.com/p/ab7cf5484e8f
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。