使用 NGINX 作为应用程序服务器的反向代理,可从一个 ip 地址但两个不同的端口访问

Using NGINX as reverse proxy for appliaction servers accessible from one ip address but two different ports

我正在尝试使用 nginx 作为我的 Odoo 部署的反向代理。确实我有两个实例可以分别在8069和8090端口访问,如果我只有IP地址(我不想使用域名),是否可以为这两个实例配置nginx?

我试过这样的方法:

server{
   listen 80 default_server;
   server_name my_ip_address/instance1;

   location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://localhost:8090;
   }

}

server{
   listen 80;
   server_name my_ip_address/instance2;

   location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://localhost:8099;
   }

}

我也试过了

server{
   listen 80 default_server;
   server_name my_ip_address;

   location /instance1 {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://localhost:8090;
   }

}

server{
   listen 80;
   server_name my_ip_address;

   location /instance2 {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://localhost:8099;
   }

}

但是当我尝试访问 my_ip_address/instance1 或 my_ip_address/instance2 时,两者都不起作用

我认为这是不可能的,因为您还必须重写 assetsform 操作的路径。

assets 包括所有 javascript 和 CSS 文件以及图像。

form 操作是应该重定向表单数据的地方。

例如,当您 login 到系统时,登录表单将数据发送到 /web/login 操作。

你打算怎么处理这个?以及您的虚拟主机在哪个虚拟主机中?!

另一方面,尝试使用子域。 或者,如果您必须使用 IP,则使用 2 个指向同一服务器的 IP,并将用作主机的每个 IP 重定向到您的一个实例。