簡體   English   中英

如何從作為nodejs服務器的反向代理的nginx服務器提供靜態文件?

[英]How do you serve static files from an nginx server acting as a reverse proxy for a nodejs server?

我目前的nginx配置是這樣的:

upstream nodejs {
    server 127.0.0.1:3000;
}

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

    location / {
        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;
    }
}

我對nginx非常陌生,但至少我知道nginx在提供靜態文件方面比node / express更好。 如何配置服務器以便nginx提供靜態文件?

我使用這個新配置解決了它:

upstream nodejs {
    server localhost:3000;
}

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

    location / {
        try_files $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;
    }
}

感謝以下Stack Overflow帖子:


如何使用NGINX直接提供所有現有靜態文件,但將其余部分代理到后端服務器。

您可能希望server中的另一個location塊用於靜態文件。

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

這使用別名指令 然后你可以在localhost:8080/static/some_file.css點擊文件

PS您不需要當前設置的rootindex root類似於alias ,使用方式略有不同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM