web-dev-qa-db-ja.com

nginxはIPをドメイン名にリダイレクトします

Nginxとgunicornを使用してWebサイトをデプロイしようとしています。 Nginxは静的ファイルを提供し、gunicornのプロキシとして機能します。

これが私の/ etc/nginx/sites-available/herbopファイルの内容です

server {
       listen 80;
       server_name herbop.com;

       location / {
                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;
                proxy_set_header Host $http_Host;
                proxy_intercept_errors on;
                proxy_pass http://127.0.0.1:8001;
       }

       location /static/ {
                autoindex on;
                alias /opt/Herbop-Backend/app/static/;
       }
}

server {
       listen 80;
       server_name 51.254.123.234;
       return 301 $scheme://herbop.com$request_uri;
}

この場合、無限のリダイレクトループが発生するようです。

何か案が ?

2
soueuls
  • DNS:ポイントherbop.comAレコードを使用して51.254.123.234。 (既存のhttpリダイレクトを削除します。)(注:DNSは配布されており、伝播に時間がかかる場合があります。)

  • 次のnginx構成を試してください。

    server {
        listen 80;
        server_name herbop.com;
    
        location /static/ {
            root /opt/Herbop-Backend/app;
        }
    
        location / {
            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;
            proxy_set_header Host $http_Host;
            proxy_intercept_errors on;
            proxy_pass http://127.0.0.1:8001;
        }
    }
    
    server {
        listen 80;
        server_name 51.254.123.234;
        return 301 $scheme://herbop.com$request_uri;
    }
    
    • ノート:

      • ((* .htmlに埋め込まれている画像などの静的ファイルを訪問者に提供するだけの場合は、autoindexは必要ありません。 " ngx_http_autoindex_module =スラッシュ文字( '/')で終わるリクエストを処理し、ディレクトリリストを生成します。[...] "私が理解している限り、これは必要ないので、有効にしないでください。))((Not私があなたを正しく理解したかどうか、そしてあなたの静的ファイルはどのようなものかを確認してください。))
      • aliasディレクティブについて: docs によると: "場所がディレクティブの値の最後の部分と一致する場合:

        location /images/ {
             alias /data/w3/images/;
        }
        

        代わりに root ディレクティブを使用することをお勧めします ":

        location /images/ {
             root /data/w3;
        }
        
3
gf_