ngnix でポートを非表示にして、代わりにサイトリンクを表示する

ngnix でポートを非表示にして、代わりにサイトリンクを表示する

以下の提案はすでに試しました:

Nginx リバース プロキシ リダイレクトでポートを非表示にする

しかし、それは私にとって役に立ちません。

私はdjango+gunicornアプリケーション用にnginxリバースプロキシを実行し、ポート8000​​で開いています。マシン名に次のようにアクセスできます。http://some_machine:8000アプリが動作しているのを確認します。Nginxリバースプロキシを使用して、そのマシンで実行されているlocalhostをマシン名にマッピングしました。ポートを非表示にし、URLに次のようなものを含めます。http://some_machine/zmkの代わりにhttp://some_machine:8000/zmk

以下のコンテンツをフォルダーに書き込みます/etc/nginx/conf.d:

upstream zms {    
  ip_hash;    
  server zms:8000;    
}

# portal

server {    
  location /zmk {    
        proxy_pass http://zms/;    
        # proxy_redirect http://some-machine:8000/ http://some-machine/zmk;    
        port_in_redirect off;    
        # autoindex on;            
        proxy_set_header Host $host:$server_port;    
        proxy_set_header X-Real-IP $remote_addr;    
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
        proxy_set_header   X-Forwarded-Proto $scheme;    
    }
  listen 8000;    
  server_name localhost    
  server_name_in_redirect off;    
}

何が間違っているのか分かりません。上記のコンテンツを/etc/nginx/site-availableフォルダーにコピーすることも試みました。

答え1

listen代わりにステートメントを に変更しますlisten 80。これにより、nginx サーバーはポート 80 でリッスンし、トラフィックをポート 8000 にプロキシします。

関連情報