代码之家  ›  专栏  ›  技术社区  ›  Shan Robertson

使用node.js应用程序配置nginx时出现问题

  •  -1
  • Shan Robertson  · 技术社区  · 6 年前

    试图让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 回复  |  直到 6 年前
        1
  •  0
  •   mindfl    6 年前

    您的配置提供如下处理请求:

    如果您没有静态文件,并且所有请求都必须由应用程序处理,则应修复您的配置,如下所示:

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

    如果您有可以由nginx提供服务的静态文件,那么您应该将配置复杂化一点 here here .

    Here is 了解nginx工作原理的文档。