一、nginx在http里配置如下信息
upstream gateway-cluster {
server 127.0.0.1:10001;
server 127.0.0.1:10002;
}
server {
listen 1000;
server_name localhost;
location ~/zzw_project/(.*) {
proxy_pass http://gateway-cluster/$1;
proxy_set_header Host $host; # 代理设置,保留客户端的原始信息
proxy_pass_request_body on; #开启获取请求体
proxy_pass_request_headers on; #开启获取请求头
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 建议增加超时时间设置,避免gateway响应延迟导致请求超时
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
二、搭建gateway服务
三、总结调用过程,以(http://localhost:1000/zzw_project/pay-api/pay/result)为例
localhost:1000首先到nginx监听到,通过location命中,走代理负载后面路径变成http://127.0.0.1:10001/pay-api/pay/result。接下来请求到了网关gateway,/pay-api/pay/result这个路径被接收的路径捕获到,filters一下路径变成/pay/result,加上uri的pay-api(通过向注册中心获取具体的ip和端口)变成http://127.0.0.1:8201/pay/result。