无法在nodejs和nginx中提供静态文件

时间:2016-12-14 21:47:51

标签: node.js nginx reverse-proxy

我有一个nodejs博客应用。我也使用nginx反向代理服务它。问题是我无法使用该应用程序加载静态文件。我在以下文件中看到了我配置的ngix。但由于某些原因,当我重定向到mysite.com/blog时,我无法加载静态文件,但在mysite:port / blog我可以。

这是nginx.config文件:

4 * n * O(1) = O(4n) = O(n)

我的app.js文件:

server {
    listen       *:80;

    server_name  www.georgegkas.discrete.gr georgegkas.discrete.gr;

    root   /var/www/georgegkas.discrete.gr/html;
    index  index.php index.html index.htm;


    location / {
        try_files $uri $uri/ =404;
    }

    location ^~ /web-class.gr/ {
        try_files $uri $uri/ =404;
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.html break;
        }
    }

    location /blog {
        root /var/www/georgegkas.discrete.gr/html/GeorgeGks-Blog/app/public;
        try_files $uri $uri/ @nodejs_blog;
        expires max;
        access_log off;
    }

    location @nodejs_blog {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8081;


    }
}

我错误地配置了什么?

1 个答案:

答案 0 :(得分:1)

示例代码

upstream nodejs {
    server localhost:3000;
}

server {
    listen 8080;
    server_name localhost;
    root ~/workspace/test/app;

    location / {
        try_files $uri $uri/ @nodejs;
    }

    location @nodejs {
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_pass http://nodejs;
        proxy_set_header Host $host ; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

您可以查看this

try_files $uri /$uri @nodejs;应为try_files $uri $uri/ @nodejs;

您可能希望location中的另一个server块用于静态文件。

location /static {
  alias /path/to/static/files;
}

Then您可以点击localhost:8080/static/some_file.css

上的文件