接口是java语言写的服务器上地址是:http://localhost:7001,配上ngnix的http服务代码如下:
server {
listen 80;
server_name api.xxx.cn; # server_name localhost;
location / {
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_pass http://localhost:7001;
}
}
java项目配了swagger文档,浏览器输入api.xxx.cn/doc.html能正常访问(前提是java服务在正常运行)。
服务器上找了一个文件夹放上vue的build的文件,再配上ngix如下:
server {
listen 80;
server_name h5.xxx.cn;
location / {
root /root/webapps/h5;
autoindex on;
index index.html index.htm;
}
}
浏览器上输入h5.xxx.cn前端的项目就能正常访问了。
可是前端调用接口404,网上了找了找,配置如下:
location /auth {
rewrite ^.+/auth/?(.*)$ /$1 break;
proxy_pass http://localhost:7001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
在转发的过程中 auth路径段丢失,这个配置是转发并去掉auth路径段。
网上各种找,最终找到ngnix直接转发的配置如下:
location /auth/ {
proxy_pass http://localhost:7001/auth/;
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-NginX-Proxy true;
}
网友评论