Mik*_*org 2 nginx jwilder-nginx-proxy nginx-reverse-proxy
我的 nginx.conf 中有一条规则不起作用,我不知道为什么。根据文档它应该可以工作。部分配置如下所示。
端口 8100 上的第一条规则起作用并将调用http://example.com/api/domains重定向到https://localhost:8181/oan/resources/domains
# Working
server {
listen 8100 default_server;
server_name example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
root /var/www/html/example;
location /api {
proxy_pass https://localhost:8181/oan/resources; break;
}
# For ReactJS to handle routes
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ / break;
}
}
}
# Not working
server {
listen 8200;
server_name api.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
location / {
proxy_pass https://localhost:8181/oan/resources; break;
}
}
Run Code Online (Sandbox Code Playgroud)
最后一次调用端口 8200: http: //api.example.com: 8200/domains 应重定向到:https://localhost:8181/oan/resources/domains但不这样做。
这个配置有什么问题,如何让端口 8200 上的最后一条规则执行正确的操作,始终重定向到https://localhost:8181/oan/resources/ $uri
当您在前缀proxy_pass位置块中使用可选 URI时,Nginx 将通过执行直接文本替换来转换请求的 URI。
在您的情况下,前缀位置值为/,可选 URI 值为/oan/resources。因此请求的 URI/foo将被转换为/oan/resourcesfoo.
为了正确操作,两个值都应以 结尾/或都不以 结尾/。
例如:
location / {
proxy_pass https://localhost:8181/oan/resources/;
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此文档。
| 归档时间: |
|
| 查看次数: |
7340 次 |
| 最近记录: |