一、前言
微服务下,不同前端开发人员同时开发前端不用部署也互不影响的处理办法;
通过一下配置,前端、后端人员独立开发各自模块不受交叉影响
1、架构组合
Openresty
gateway网关+鉴权(spring-autherization-server)
cloud各后端独立开发自己模块+Feign+consul
2、前端启动后访问nginx统一地址, 即可调试自己本地的代码(后端人员本地访问无效)
二、lua脚本配置
upsteam.lua
-- local ip = ngx.var.remote_addr;
local headers=ngx.req.get_headers()
local ip=headers["X-REAL-IP"] or headers["X_FORWARDED_FOR"] or ngx.var.remote_addr or "0.0.0.0"
return ip..":8086"
因为 过了一层gateway相当于多了代理ngx.var.remote_addr; 要到的是网关ip不是前端自己的ip反向回前端自己环境无效
三、nginx.conf 配置
server {
listen 8888;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 静态资源不过网关
location ~* \.(js|css|ico|woff|woff2|png)$ {
expires 30d;
set_by_lua_file $ups ./lua/upsteam.lua;
proxy_pass http://$ups;
proxy_buffer_size 64k;
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_set_header Host $host;
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 http;
}
# 网关转发入口
location /gateway/ {
set_by_lua_file $ups ./lua/upsteam.lua;
proxy_pass http://$ups;
proxy_buffer_size 64k;
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_set_header Host $host;
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 http;
}
# 访问入口
location /xxx/ {
proxy_pass http://172.3.100.xx:8080;
proxy_buffer_size 64k;
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_set_header Host $host;
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 http;
}
# websocket入口
location /websocket {
proxy_pass http://172.3.100.xx:8080;
proxy_http_version 1.1;
proxy_read_timeout 3600s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 认证中心回调等
location / {
proxy_pass http://172.3.100.xx:8080;
proxy_buffer_size 64k;
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_set_header Host $host;
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 http;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}