我是 Nginx 的新手。我有一台 VPS,上面有 3 个应用程序在不同的端口上运行:FirstApp localhost:8080 SecondApp localhost:4000 ThirdApp localhost:8085。
FirstApp 运行良好,Nginx 正确重定向,但我想重定向到其他类似的地方:
* domain-name.com/ * domain-name.com/secondApp * domain-name.com/thirdApp
现在我可以这样做,但必须转到 domain-name.com:4000
我该怎么办?/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
答案1
总的原则:更多的位置块!
location / {
proxy_pass http://127.0.0.1:8080;
}
location /secondApp {
proxy_pass http://127.0.0.1:4000;
}
location /thirdApp {
proxy_pass http://127.0.0.1:8085;
}
这种位置样式称为“前缀匹配”,因此中间块将匹配所有以 开头的路径/secondApp
。选择匹配时,nginx 会选择最长的匹配,因此尽管/secondApp/with/a/url
匹配/
和/secondApp
,nginx 仍会选择中间块,因为它具有最长的匹配。