2013-12-22 2 views
0

Я пытаюсь понять следующий файл конфига nginx (from here). Что я должен заменить @example_app?Как указать URI в файле nginx conf?

server { 
    listen 80; 
    server_name example.com; 
    rewrite ^(.+?)/?$ http://www.example.com$1 permanent; 
} 

server { 
    listen 80; 
    server_name www.example.com; 
    root /var/www/example.com/public_html; 

    location/{ 
    try_files $uri @example_app; 
    } 

    location @example_app { 
    proxy_pass http://localhost:5000; 
    } 

} 

EDIT

Я изменил свой конфигурационный файл для этого. Это лучше? Я адаптировал его от this answer. Я также добавил свой домен и IP-адрес для /etc/hosts

upstream ring { 
     server 127.0.0.1:8080 fail_timeout=0; 
} 

server { 
     root /usr/share/nginx/html; 

     server_name localhost; 

     location/{ 
       try_files $uri $uri/ @ring; 
     } 

     location @ring { 
       proxy_redirect off; 
       proxy_buffering off; 
       proxy_set_header Host $http_host; 
       proxy_pass http://ring; 
     } 

     location ~ ^/(assets|images|javascripts/stylesheets|swfs|system)/ { 
     expires  max; 
     add_header Cache-Control public; 
     } 

ответ

2

Вам не нужно заменить @example_app с чем-нибудь, если вы не хотите. Это просто просто именованное местоположение и может быть легко изменено на @whatever. Вам просто нужно убедиться, что если вы ссылаетесь на именованное местоположение с try_files, вам нужно определить то же место в вашем файле конфигурации.

Комментарии на Reddit объяснить конфигурации достаточно хорошо, но, чтобы подтвердить:

1) Блок первый сервер перенаправляет все запросы от example.com до www.example.com 2) Второй блок сервера ловит запросы к www.example.com 3) Блок location / улавливает все запросы в этом блоке сервера и пытается просмотреть список параметров от try_files - сначала пытается загрузить любые соответствующие файлы по этому пути, иначе используя именованное местоположение @example_app 4) Блок location @example_app это именованное местоположение, а прокси передает запрос на порт 5000 на том же сервере.

+0

Прошу прощения, это оказалось настолько запутанным для меня. Тем временем я изменил конфигурационный файл в соответствии с более ранним ответом. Я отредактировал мой вопрос, не могли бы вы взглянуть? – Zeynel

Смежные вопросы