异地办公,网络不通,前端在后端不发布测试环境的情况下,连接后端开发者本地服务。
1 步骤
1.1 后端本地启动服务
例如我这里有12个微服务都在本地启动,每个服务各自占一个端口。

1.2 内网穿透工具
本人用的huashengke,那个需要实名和付钱,9.9可以映射2个端口,有公网服务器的话可以自己部署开源FRP。我把80穿出去了

1.3 windows下载绿色版的nginx,修改conf然后启动
1.3.1 主要解决下跨域问题
- 有时
CORS Error的原因不是没设置Access-Control-Allow-Origin,也不是因为Access-Control-Allow-Origin的通配符*不起作用,而是Access-Control-Allow-Headers设置错了,如果写的是枚举值,可能漏掉某些不常用header,比如requestid,所以设置成$http_access_control_request_headers always - 在option方法中设置
Access-Control-Allow-Origin,在外面就不要设置,不然前端请求返回是Access-Control-Allow-Origin: *,*
1.3.2 conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
# 服务course: 8110
location /course/api {
add_header X-Debug-Location "course-api-block" always;
# 预检请求处理
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers $http_access_control_request_headers always;
return 200;
}
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers $http_access_control_request_headers always;
add_header Access-Control-Allow-Credentials true always;
proxy_pass http://127.0.0.1:8110/api;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 服务system: 8100
location /system/api {
add_header X-Debug-Location "system-api-block" always;
# 预检请求处理
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Headers $http_access_control_request_headers always;
return 200;
}
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers $http_access_control_request_headers always;
add_header Access-Control-Allow-Credentials true always;
proxy_pass http://127.0.0.1:8100/api;
}
# 省略 10个服务配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
1.4 启动nginx
powershell直接定位到nginx目录,直接运行即可

1.5 前端配置
前端调用就调用到axios,访问地址如下配置
JavaScript
COURSE: 'http://xxx.vicp.fun/course/api',
SYSTEM: 'http://xxx.vicp.fun/system/api',
// skip over