nginx + nodejs configuration

前端 未结 2 1712
感情败类
感情败类 2021-02-06 12:32

I have a problem with my current nginx configuration. What I am trying to do is:

  • For requests without any path, get the index.html (works)
  • Get existing fi
相关标签:
2条回答
  • 2021-02-06 13:02

    I think I figured out what you were trying to do. The proper way is to use try_files together with a named location.

    Try with the following configuration:

    # IP which nodejs is running on
    upstream app_x {
        server 127.0.0.1:3000;
    }
    
    # nginx server instance
    server {
        listen 80;
        server_name x.x.x.x;
        #access_log /var/log/nginx/x.log;
    
        location / {
            root /var/www/x/public;
            index index.html index.htm index.php;
            try_files $uri $uri/ @node;
        }
    
        location @node {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://app_x;
        }
    }
    

    Note: When you have an upstream defined you should use that in your proxy_ pass. Also, when proxying, always add the X-Forwarded-For header.

    0 讨论(0)
  • 2021-02-06 13:05

    I was wondering that problem is in application path. Please find the following code excerpt from toontuts blog for full configuration of nginx with nodejs, you may find this link

    upstream subdomain.your_domain.com {
      server 127.0.0.1:3000;
    }
     
    server {
      listen 0.0.0.0:80;
      server_name subdomain.your_domain.com;
      access_log /var/log/nginx/subdomain.your_domain.access.log;
      error_log /var/log/nginx/subdomain.your_domain.error.log debug;
     
      location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
     
        proxy_pass http://subdomain.your_domain.com;
        proxy_redirect off;
      }
    }
    
    0 讨论(0)
提交回复
热议问题