如何使用 Nginx 为不同的网站提供相同的主机和不同的 URL

如何使用 Nginx 为不同的网站提供相同的主机和不同的 URL

我有不同的网站在端口 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;
  }
}

相关内容