首先是刷新的问题!
location / { try_files $uri $uri/ /index.html; }
最近在vue本地做的转发代理api,上线后不管用了!于是去研究了下!本地的转发代理可以查看本站文章!
比较详细的一步一步说的!懒得看的可以直接看最后一步代码
首先打开nginx域名配置文件
1、匹配接口
匹配我们的转发接口
比如我们上线后请求的接口是
/api/plus/ajax.php
那么我们就可以这样匹配带api
location ^~ /api/ { }
2、代理接口
我们需要用到的是 proxy_pass 译文为代理通行证
我们现在开始转发
http://localhost:263/api/plus/ajax.php
方法1
用
location ^~ /api/ { proxy_pass http://localhost:198; # 转发地址 }
结果
http://localhost:198/api/plus/ajax.php
方法2
用
location ^~ /api/ { proxy_pass http://localhost:198/; # 转发地址 }
结果
http://localhost:198/plus/ajax.php
注意上面我们只是在198后面增加了/ 就直接把/api替换掉了!
在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。
方法3
location ^~ /api/ { rewrite ^/api/(.*)$ /$1 break;# 去除本地接口/api前缀, 否则会出现404 proxy_pass http://www.xhcss.com; }
结果
http://localhost:198/plus/ajax.php
我们可以用rewrite方法,替换掉api 也可以取得同样的效果
其他
add_header xh $upstream_addr; # 这是查看转发后的地址
可以增加一些参数