【问题标题】:issues configuring nginx with node.js app使用 node.js 应用程序配置 nginx 的问题
【发布时间】:2023-03-17 09:07:02
【问题描述】:

试图让 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 对我来说很新,我觉得我非常接近我只是注意理解一些东西。谢谢!

【问题讨论】:

标签: node.js linux nginx dns centos


【解决方案1】:

您的配置提供这样的请求处理:

  • http://[www.]example.com/var/www[*] 的请求将被代理传递给 你的应用
  • 所有其他请求将像静态/直接一样处理 默认 nginx 目录中的请求

如果您没有静态文件并且所有请求都必须由应用程序处理,那么您应该像这样修复您的配置:

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

如果你有 nginx 可以提供的静态文件,那么你应该让你的配置复杂一点,比如 herehere

Here is 了解 nginx 如何工作的文档。

【讨论】:

    猜你喜欢
    • 2015-03-09
    • 1970-01-01
    • 2019-08-17
    • 2019-05-10
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多