0

我有一个旧的服务器设置,我给人们提供了端口 420 的服务的 URL,example.corp.com:420,现在我将所有服务移动到 Ngnix 中的常规 80 端口,我希望所有请求都来自示例。 corp.com:420 改为默认返回 example.corp.com。有没有办法告诉 Ngnix 去 app1 而不管给定的端口号是什么?我尝试了几件事,但都没有奏效。这是我目前的配置。提前致谢。

upstream unicorn-app1 {
  server unix:/tmp/unicorn.app1.sock;
}

server {
  listen 80;
  server_name example.corp.com;
  root /home/example/apps/wm/current/public;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
      proxy_pass http://unicorn-app1;
      break;
    }
  }
}

upstream unicorn-app2{
  server unix:/tmp/unicorn.app2.sock;
}

server {
  listen 420;
  server_name example.corp.com;
  root /home/example/apps/app2/current/public;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
      proxy_pass http://unicorn-app2;
      break;
    }
  }
}
4

2 回答 2

0

我真的让它工作了。我认为当您了解正在发生的事情时它相当简单,我只是错过了整个工作所必需的一个小细节。因此,每当您需要将 Ngnix 服务器的不同端口默认返回到特定端口时,您所要做的就是定义其他端口应用程序以指向 80 端口应用程序。这是解决方案,我用粗体表示必须更改才能使其工作。希望能帮助到你。

upstream unicorn-app1 {
  server unix:/tmp/unicorn.app1.sock;
}

server {
  listen 80;
  server_name example.corp.com;
  root /home/example/apps/wm/current/public;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
      proxy_pass http://unicorn-app1;
      break;
    }
  }
}

upstream unicorn-app2{
  server unix:/tmp/unicorn.**app1**.sock;
}

server {
  listen 420;
  server_name example.corp.com;
  root /home/example/apps/**app1**/current/public;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
      proxy_pass http://unicorn-**app1**;
      break;
    }
  }
}
于 2013-10-08T18:49:10.067 回答
0

其实更好的办法是让420端口重定向到80端口,这样人们会慢慢停止使用480端口,直接使用301重定向

server {
    listen 480;
    server_name example.com;
    return 301 example.com$request_uri;
}
于 2013-10-09T05:08:07.423 回答