微服务下前端的协同开发配置

50 阅读1分钟

一、前言

微服务下,不同前端开发人员同时开发前端不用部署也互不影响的处理办法;
通过一下配置,前端、后端人员独立开发各自模块不受交叉影响 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;
        }
    }