Stiamo cercando di eseguire un'applicazione Meteor su un server Debian dietro Nginx. L'applicazione è in esecuzione ma le richieste GET allo http://url/sockjs?info?cb=[random_string]
restituiscono 502 Bad Gateway
.Meteor, WebSocket, Nginx 502 Errore
La configurazione Nginx è impostato come così:
# this section is needed to proxy web-socket connections
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream app_server {
server 127.0.0.1:3000; # for a web port socket (we'll use this first)
# server unix:/var/run/app/app.sock;
}
server {
listen 80;
server_name app_server.com;
charset utf-8;
client_max_body_size 75M;
access_log /var/log/nginx/app.access.log;
error_log /var/log/nginx/app.error.log;
location/{
proxy_pass http://app_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP
proxy_read_timeout 60s;
keepalive_timeout 65;
proxy_redirect off;
# the root path (/) MUST NOT be cached
if ($uri != '/') {
expires 30d;
}
}
}
Abbiamo provato diverse configurazioni e non poteva capire dove si trova il guasto. Soluzione allo Meteor WebSocket handshake error 400 with nginx non ha funzionato neanche.
Edit: provato seguente configurazione trovato alla recommended nginx configuration for meteor ed era ancora tornando 502.
Edit: L'applicazione funziona bene quando non ottenere immagini da Meteor CFS, che viene utilizzata per memorizzare le immagini caricate tramite un dashboard di amministrazione. Quando si caricano le immagini, un POST a dominio/sockjs/img_location/cb/xhr_send causa un errore 502.
Forse prova a cambiare il proxy_pass in modo che punti all'istanza di meteor e rimuova l'app_server upstream? A meno che non sia necessario caricare il bilanciamento suppongo ... proxy_pass http: // localhost: 3000; Controlla anche questa risorsa: http://www.meteorpedia.com/read/nginx –
@Sparticus ha provato quella configurazione in precedenza e i risultati sono gli stessi. – mrkre
Ho notato che stai usando 'proxy_set_header Connection $ connection_upgrade;' ... hai provato invece 'proxy_set_header Connection $ http_connection; '? – Myst