#负载均衡配置
upstream order-backend {
server 127.0.0.1:8080 max_fails=1 fail_timeout=3s weight=3;
server 127.0.0.1:8081 max_fails=1 fail_timeout=3s weight=3;
}
location /api {
#add_header指令来设置response header,通过浏览器F12查看到每个请求的response header都有下面四个属性
#该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求。
add_header Access-Control-Allow-Origin "*";
#表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可。
add_header Access-Control-Allow-Credentials "true";
#该字段可选。CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定。
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
#该字段可选。跨域允许的方法
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
#proxy_pass反向代理,对于访问/api开头的请求,均转发到负载均衡order-backend
proxy_pass http://order-backend;
#proxy_redirect
proxy_redirect off;
#proxy_set_header用来重定义发往后端服务器的请求头
#转发后台服务时候,请求header加上Host字段,$host是NGINX内置全局变量,表示前端请求上送的host
proxy_set_header Host $host;
#转发后台服务时候,请求header加上Cookie字段,$http_cookie是NGINX内置全局变量,表示前端请求上送的cookie
proxy_set_header Cookie $http_cookie;
#x-real-ip表示直连地址
#转发后台服务时候,请求header加上x-real-ip字段,$remote_addr是NGINX内置全局变量,表示浏览器实际地址
proxy_set_header x-real-ip $remote_addr;
#https://www.cnblogs.com/diaosir/p/6890825.html
#在使用nginx做反向代理时,我们为了记录整个的代理过程,我们往往会在配置文件中做如下配置:proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;,内容通常X-Forwarded-For:192.168.247.1, 192.168.247.131, 192.168.247.132
#x-forwarded-for获取结果是一组ip,如果每个代理都设置了proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;,那么分别是ip1,,ip2,ip3地址,第一个地址就是实际地址
#转发后台服务时候,请求header加上x-forwarded-for字段,$http_cookie是NGINX内置全局变量,表示前端请求上送的cookie。详细见https://www.cnblogs.com/diaosir/p/6890825.html
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
#proxy_cookie_path 解决反向代理session丢失。proxy_cookie_path 的作用是用来改变cookie的路径 nginx在每次传递请求时,如果没有传递cookie,没有添加proxy_cookie_path,服务器将视为两次请求,因此会重新生成一个新的session,致使session数据丢失。
proxy_cookie_path /api/ /;
#proxy_next_upstream 当其中一台返回错误码404,500...等错误时,可以分配到下一台服务器程序继续处理,提高平台访问成功率,多可运用于前台程序负载
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
}
Nginx摘除流量
于 2022-04-25 14:52:04 首次发布
本文详细介绍了如何使用Nginx进行流量管理,通过配置实现高效地摘除流量,提高系统性能和稳定性。

389

被折叠的 条评论
为什么被折叠?



