2017-02-10 3 views
0

У меня есть сервер supervisord, работающий на localhost:9001. Я стараюсь служить в localhost/supervisord.Конфигурация супервизора Nginx

nginx конфигурации, как это:

worker_processes 1; 
error_log /var/log/nginx/error.log; 
pid /tmp/nginx.pid; 
#daemon off; 

events { 
    worker_connections 1024; 
} 

http { 
    # MIME/Charset 
    default_type application/octet-stream; 
    charset utf-8; 

    # Logging 
    access_log /var/log/nginx/access.log; 

    # Other params 
    server_tokens off; 
    tcp_nopush on; 
    tcp_nodelay off; 
    sendfile on; 

    upstream supervisord { 
     server localhost:9001; 
    } 

    server { 
     listen 80; 
      client_max_body_size 4G; 
      keepalive_timeout 5; 

     location ^~ /stylesheets { 
      alias /Users/ocervell/.virtualenvs/ndc-v3.3/lib/python2.7/site-packages/supervisor/ui/stylesheets; 
      access_log off; 
     } 

     location ^~ /images { 
      alias /Users/ocervell/.virtualenvs/ndc-v3.3/lib/python2.7/site-packages/supervisor/ui/images; 
      access_log off; 
     } 

     location /supervisord { 
      # Set client IP/Proxy IP 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Real-IP $remote_addr; 

      # Set host header 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_pass http://supervisord/; 
     } 
    } 
} 

Перед добавлением ^~ /images и ^~ /stylesheets местоположения страница была возвращающая 502 Bad Gateway.

С приведенной выше конфигурацией я могу получить доступ к localhost/supervisord, но CSS отсутствует на странице.

Я вижу CSS/изображения правильно загружены в браузере:

Assets loaded

Но я вижу сообщение об ошибке в консоли браузера и это, кажется, преступник:

Stylesheet not loaded

Тип изображения в браузере для localhost/stylesheets/supervisor.css Отображается как octet-stream, а не text/css.

Тип изображения в браузере для: localhost:9001/stylesheets/supervisor.css Значение: text/css.

Как исправить эту ошибку?

Я думал о динамической перезаписи MimeType для статических файлов, но я не являюсь экспертом в nginx и не имею ни малейшего представления о том, как сделать это с nginx конфигурации.

ответ

1

Действительно интересна такая очевидная функция, как перенос веб-интерфейсов за прозрачный обратный прокси, не так просто настроить, как должно быть.

Во всяком случае, это то, что я делаю, чтобы получить обратный прокси-сервер работает с приложениями, где корень не могут быть изменены, как руководитель:

  location /supervisor { 
      proxy_pass http://127.0.0.1:9001/; 
      } 

      location/{ 

      if ($http_referer ~ "^.*/supervisor"){ 
       return 301 /supervisor/$request_uri; 
      } 
      } 

Применение на стороне запросы ударится основной конечной точки, а затем Nginx воли повторно направить их к руководителю/EP

Это работает в большинстве случаев, но не веб-функции always.The следующего супервизора потерпят неудачу:

  1. получения подтверждение действия - вы можете запускать/останавливать службы, но страница результатов не загружается; просто перейдите в/supervisor EP, чтобы проверить результат

  2. живой хвост не работает; однако есть лог-дисплей с ручным обновлением, который работает по ссылке с именем программы.

В любом случае эта частичная поддержка для меня очень полезна, и вы можете найти ее также полезной.

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