проблемы настройки nginx с приложением node.js - PullRequest
0 голосов
/ 09 сентября 2018

Попытка получить nginx для прокси моего приложения node.js и использовать с ним домен. Я собираюсь иметь много доменов, сопоставленных с сервером, поэтому я использую отдельные .conf файлы для каждого блока сервера. У меня сейчас проблема в том, что я могу только получить страницу nginx по умолчанию, которая появляется, когда я захожу в домен. Я постараюсь объяснить текущую настройку как можно более четко, и если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

nginx.conf изменения

Я установил корневой путь к файлам моих приложений, root /var/www;, поэтому, например, приложение будет развернуто в папке /var/www/example.com.

конфигурация блока сервера

Я создал новый файл для блока сервера /etc/nginx/conf.d/example_com.conf, который содержит

server
{
listen 80;
listen [::]:80;
server_name example.com www.example.com;

location /var/www
{
    proxy_pass http://localhost:3103;
    include /etc/nginx/proxy_params;
}
}

обратите внимание, что при переходе на мой http://myip:3103 приложение отображается так, как должно, а файл /etc/nginx/proxy_params содержит

proxy_buffers 16 32k;
    proxy_buffer_size 64k;
    proxy_busy_buffers_size 128k;
    proxy_cache_bypass $http_pragma $http_authorization;
    proxy_connect_timeout 59s;
    proxy_hide_header X-Powered-By;
    proxy_http_version 1.1;
    proxy_ignore_headers Cache-Control Expires;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
    proxy_no_cache $http_pragma $http_authorization;
    proxy_pass_header Set-Cookie;
    proxy_read_timeout 600;
    proxy_redirect off;
    proxy_send_timeout 600;
    proxy_temp_file_write_size 64k;
    proxy_set_header Accept-Encoding '';
    proxy_set_header Cookie $http_cookie;
    proxy_set_header Host $host;
    proxy_set_header Proxy '';
    proxy_set_header Referer $http_referer;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Original-Request $request_uri;

Есть ли что-то, что я делаю здесь неправильно? Вам нужна дополнительная информация? Пожалуйста, дайте мне знать! nginx довольно новый для меня, и я чувствую, что я очень близок, я просто кое-что понимаю. Спасибо!

1 Ответ

0 голосов
/ 09 сентября 2018

Ваша конфигурация обеспечивает обработку запросов следующим образом:

  • запросы к http://[www.]example.com/var/www[*] будут переданы proxy_passed to ваше приложение
  • все остальные запросы будут обрабатываться как статические / прямые запросы в директории nginx по умолчанию

Если у вас нет статических файлов и все запросы должны обрабатываться приложением, вам следует исправить свою конфигурацию следующим образом:

location /
  {
     proxy_pass http://localhost:3103;
     include /etc/nginx/proxy_params;
  }

Если у вас есть статические файлы, которые могут обслуживаться nginx, вам следует немного усложнить настройку, например здесь или здесь .

Вот документация для понимания того, как работает nginx.

...