@ennet

Как связать Nginx + nodejs, чтобы put и post не отдавал 504 ошибку или иную другую?

Привет! У меня есть сайт на nodejs и я хочу, чтобы все шло через прокси nginx`а. Мой конфиг:

upstream nodejs {
server localhost:3000;
}

server {
  listen 80;
  server_name localhost;
  root /home/dev/myApp;

  location / {
    try_files $uri $uri/ @nodejs;
  }
  error_log /var/log/nginx/myApp.error.log;


  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;
  }
}


Все хорошо статику отдает, но когда я посылаю POST и PUT отдает мне в логах следующее

2016/04/05 14:04:38 [error] 16318#0: *6 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.1.112, server: localhost, request: "POST /login HTTP/1.1", upstream: "http://127.0.0.1:3000/login", host: "myApp.dev.lan", referrer: "http://myApp.dev.lan/login"


при чем на простом localhost:3000 только с nodejs все отрабатывает замечательно.
Подскажите, куда смотреть. чтобы решить проблему? излазила интернет - не нашла ничего. Буду благодарна. Спасибо!
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Попробуйте добавить такие строчки в location @nodejs:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';

У меня похожий конфиг, отличается только вот этим, и работает. Не забудьте рестартануть nginx.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы