У меня есть nodejs работает в порту 8000 и nginx в порту 80 на том же сервере.
Я хочу, чтобы Nginx обрабатывал все запросы (изображения, CSS и т. Д.) И перенаправлял запросы js на сервер nodejs на порт 8000.
Возможно ли этого добиться. Я настроил nginx как обратный прокси, но он пересылает каждый запрос на nodejs, но я хочу, чтобы nginx обрабатывал все, кроме js.
nginx / сайты-включены / по умолчанию /
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;
}
Обновление пробовали это: Но ничего не изменилось, все равно nginx пересылает каждый запрос на 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;
}
статические активы
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;
}
Обычно я разделяю статический контент и обрабатываю его в другой директиве местоположения. Что-то вроде:
location ~ ^/{static|images|css,...}/ {
root /var/www/static;
}
location / {
proxy_pass http://nodejs;
}