我有不同的网站在端口 8080、8090 上提供服务
现在我唯一被允许使用的端口是外部的 8085。
可以这样做吗
myserver.com:8085/site1 go to 8080
myserver.com:8085/site2 go to 8090
我要那个
http://www.myserver.com:8085/site1
应该去http://myserver.com:8080/site1
由 Tim 编辑 - 从下面的 OP 问题中添加
我也想
/site1/task
代理 http://example.com:5678/task
我试过这个
location ~ ^/site2(/)?(?<var>\w+)? {
proxy_pass http://127.0.0.1:3434/$var;
}
答案1
类似这样的方法应该可以行得通 - 这只是基本步骤。虽然这不是一个专业问题,但这是 Nginx 的绝对基础知识,您应该能够通过简单的教程自己解决。
server {
server_name example.com;
listen 8085;
location /site1 {
proxy_pass http://example.com:8080;
}
location /site1/task {
proxy_pass http://example.com/task:8090;
}
location /site2 {
proxy_pass http://example.com:8090;
}
# If you want a variable in the location, something like this might work
# This is a regular expression with a capture group, untested, which
# should at least give you a good clue how to work it out yourself
location ~/site3/([0-9a-zA-Z_\-\s\+]+)$) {
proxy_pass http://example.com/$1;
}
}