Ich versuche, eine Express-socket.io-angular.js Anwendung auf einer Himbeere meine bei mir zu Hause zu betreiben.Running socket.io hinter Nginx an einer Sublokation
Express und socket.io werden auf Port 3001 ausgeführt. Der Zugriff auf die Anwendung unter http://[IP]:3001 funktioniert einwandfrei. Ich möchte auf die Anwendung unter http://[IP]/ttt zugreifen.
ich konfiguriert nginx wie folgt aus:
location /ttt/ {
proxy_pass http://localhost:3001/;
}
Auf dem Server ich diese Zeilen Code auszuführen:
var express = require('express');
var app = express();
var http = require('http').Server(app);
...
app.use(express.static(__dirname + '/public'));
app.use('/node_modules', express.static(__dirname + '/node_modules'));
...
var io = require('socket.io')(http, {path: '/ttt/socket.io'});
...
http.listen(3001, function() {
console.log('Listening on port 3001');
});
und auf der Client-I umfassen wie folgt Socket.io:
<script src="socket.io/socket.io.js"></script>
und verbinden wie folgt:
socket: Socket = io.connect({path: "/ttt/socket.io"});
Das Problem:
ich alle Ressourcen (html, css, js inkl. socket.io.js), aber im Browserlog erhalte ich Fehlermeldungen, dass es nicht möglich war, http://[IP]/socket.io/?EIO=3&transport=polling&t=LNGvDUd zu erhalten, wobei t sich häufig ändert.
Es meldet Status 404, es ist offensichtlich, weil Nginx nicht an /socket.io reagiert.
Vielen Dank im Voraus!
Kombinierte Ergebnisse mit jfriend00:
Die Arbeits Setup sieht wie folgt aus:
nginx (weitere Informationen über die korrekte Konfiguration here gefunden):
location /ttt/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:3001/;
}
Express:
var io = require('socket.io')(http);
Client (Typoskript):
socket: Socket = io({path: "/ttt/socket.io"});
Vielen Dank für Ihre schnelle Antwort! Ja, Sie haben mein Proxy-Setup richtig verstanden. Ich habe das versucht, aber der Browser versucht immer noch, /socket.io/... unter der falschen URL zu bekommen. – Stefan
Ich weiß nicht, was diese Syntax in Ihrem Client-Code bedeutet: 'socket: Socket = io.connect ({path : "/ttt/socket.io"}); '. Es funktioniert bei mir damit im Client: 'socket = io ({pfad:" /ttt/socket.io "});' und ' '. – jfriend00
Sorry, aber ich bekomme immer noch den 404-Fehler auf http: // [IP] /socket.io/?EIO=3&transport=polling&t=LNGvDUd Welchen Teil der Syntax meinst du? – Stefan