nginx 将ip重定向到域名

nginx 将ip重定向到域名

我正在尝试使用 nginx 和 gunicorn 部署一个网站。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;
}

在这种情况下,我似乎得到了无限的重定向循环。

任何想法 ?

答案1

  • DNS:herbop.com使用A记录指向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处理以斜杠字符('/')结尾的请求并生成目录列表。[...]“据我所知,您不需要此功能,因此不要启用它。))((不确定我是否理解正确,以及您的静态文件属于哪种类型。))
      • 关于你的alias指示:根据文档:“当位置与指令值的最后一部分匹配时:

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

        最好使用指令”:

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

相关内容