nginx redirect ip to domain name

I am trying to deploy a website with nginx and gunicorn. Nginx is serving static files and acting as a proxy to gunicorn.

Here is the content of my /etc/nginx/sites-available/herbop file

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;
}

In this case I seem to get an infinite redirection loop.

Any idea ?

2
задан 9 November 2015 в 22:50
1 ответ
  • DNS: Укажите herbop.com , используя запись A для 51.254.123.234 . (Удалите существующее перенаправление http.) (Примечание: DNS распространяется, иногда для распространения требуется некоторое время.)

  • Попробуйте следующую конфигурацию nginx:

     server {
      слушать 80;
      имя_сервера herbop.com;
    
      location / static / {
      root / opt / Herbop-Backend / app;
      }
    
      расположение / {
      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 $;
      proxy_set_header Хост $ http_host;
      proxy_intercept_errors on;
      proxy_pass http://127.0.0.1:8001;
      }
     }
    
    server {
      слушать 80;
      имя_сервера 51.254.123.234;
      вернуть 301 $ scheme: //herbop.com$request_uri;
     }
     
    • Примечания:

      • ((Если все, что вы хотите делать, это предоставлять посетителям статические файлы, такие как изображения и т. Д., Которые встроены в ваш * .html, вам не нужен автоиндекс . " ngx_http_autoindex_module обрабатывает запросы, заканчивающиеся символом косой черты ('/'), и выдает список каталогов. [...]" Насколько я понимаю, вам это не понадобится, поэтому не включите его.)) ((Не уверен, правильно ли я понял и какого типа ваши статические файлы.))
      • Относительно вашего псевдонима директивы: Согласно docs : "Когда location совпадает с последней частью значения директивы:

         location / images / {
          псевдоним / data / w3 / images /;
         }
         

        лучше использовать директиву root вместо ":

         location / images / {
          корень / данные / w3;
         }
         
3
ответ дан 3 December 2019 в 10:41

Теги

Похожие вопросы