Ich habe nginx + mysql + nodejs auf Centos7 (ec2-Instanz von aws) installiert. Eine einfache Knoten App funktioniert gut. Es kann sowohl über curl als auch über den Webbrowser aufgerufen werden. Eine einfache Express-App funktioniert jedoch nicht über den Webbrowser (Antwort 502). Es funktioniert nur über curl http://MY-PRIVATE-IP:8080. Auf meinem lokal installierten Server ist alles in Ordnung. Hinweis: Ich habe Express Global nicht installiert. Vielleicht ist das m. Fehler?Express.js App auf Nginx
Irgendeine Idee? Ich würde Ihre Ideen schätzen. Danke.
hier Details über meine nginx Konfiguration eine der Knoten-Anwendungen:
nginx.conf
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
#worker_rlimit_nofile 30000;
events {
worker_connections 1024;
}
http {
index index.php index.htm index.html;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
types_hash_max_size 2048;
gzip on;
#include /etc/nginx/conf.d/*.conf;
upstream node_upstream {
server MY-PRIVATE-IP:8080;
}
server_tokens off;
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/html;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location /myapp {
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://node_upstream;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
NodeJS App: hallo.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hallo Welt\n');
}).listen(8080, 'MY-PRIVATE-IP');
console.log('Server running at http://MY-PRIVATE-IP:8080/');
Express.js App : Hallo.js
Nach dem Ändern der Server-Name 52.38.xx.xx leider der Zugriff schlägt fehl mit diesem Protokoll: 79.248.x.xx - - [30/Apr/2016: 20: 15: 57 +0000] "GET/myapp HTTP/1.1 "404 19" - "" Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 45.0) Gecko/20100101 Firefox/45.0 "" - " – Asman
Servername sollte Ihre URL sein, nicht die IP des Servers (außer Sie verwenden die IP beim Versuch, auf Ihre Website zuzugreifen, was nicht empfohlen wird). Haben Sie versucht, die proxy_pass-Anweisung an den Port 8080 zu leiten, wo die App zuhört? –