Linux

使用 node.js 應用程序配置 nginx 的問題

  • September 12, 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 對我來說很新,我覺得我非常接近我只是注意理解一些東西。謝謝!

location 指令指定客戶端請求 URI,而不是本地文件系統上的文件位置。

所以location /var/www {意味著當有人請求時使用這個位置www.example.com/var/www

嘗試將其更改為location / {

引用自:https://serverfault.com/questions/930072