Linux

nginx將ip重定向到域名

  • January 13, 2016

我正在嘗試使用 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;
}

在這種情況下,我似乎得到了一個無限的重定向循環。

任何的想法 ?

  • 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/;
    }
    
    
    好改用[root](http://nginx.org/en/docs/http/ngx_http_core_module.html#root)指令”:
    
    cation /images/ {
    ot /data/w3;
    

引用自:https://serverfault.com/questions/735069