Пытаюсь заставить 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://мойip: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
Директива location указывает URI запроса клиента, а не местоположение файла в локальной файловой системе.
Это location /var/www {
означает, что используйте это место, когда кто-то запрашиваетwww.example.com/var/www
Попробуйте изменить его наlocation / {