O que geralmente faço é separar o conteúdo estático e processá-lo em outra diretiva de local. Algo como:
location ~ ^/{static|images|css,...}/ {
root /var/www/static;
}
location / {
proxy_pass http://nodejs;
}
Estou tendo um nodejs em execução na porta 8000 e nginx na porta 80 no mesmo servidor.
Eu quero que o Nginx manipule todos os pedidos (image, css, etc) e envie solicitações js para o servidor nodejs na porta 8000.
É possível conseguir isso? Eu configurei nginx como proxy reverso, mas seu encaminhamento a cada solicitação para nodejs, mas eu quero nginx para processar todos, exceto js.
nginx / sites-enabled / default /
upstream nodejs {
server localhost:8000; #nodejs
}
location / {
proxy_pass http://192.168.2.21:8000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Atualização Tentei Isto: Mas nada mudou, ainda o nginx está encaminhando cada requisição para nodejs
server {
listen 192.168.2.21:80;
server_name server;
access_log /var/log/server/access.log;
error_log /var/log/server/error.log;
root /var/www/static;
location / {
proxy_pass http://127.0.0.1:8000;
root /var/www/jsfiles;
access_log on;
}
recursos estáticos
location ~* ^(?!\/).+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ {
expires max;
access_log off;
}
O que geralmente faço é separar o conteúdo estático e processá-lo em outra diretiva de local. Algo como:
location ~ ^/{static|images|css,...}/ {
root /var/www/static;
}
location / {
proxy_pass http://nodejs;
}
Tags cache nginx reverse-proxy node.js