Ich kenne Nginx noch nicht. Ein DevOps-Typ hat vor einiger Zeit eines für unsere App eingerichtet.
dies ist das nginx.conf
Setup.
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
proxy_cache_path /home/html_catch levels=1:2 keys_zone=appbacktocartcocatch:2m max_size=50m;
proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
include /etc/nginx/sites-enabled/*.conf;
}
Ich kann sehen, dass es include
einige andere Dateien wie diese sind, die speziell für die App sind
#proxy_cache_path /home/html_catch levels=1:2 keys_zone=appbacktocartcocatch:2m max_size=50m;
#proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
#proxy_cache_valid 200 302 10m;
#proxy_cache_valid 404 1m;
upstream appbacktocartco {
# server localhost:3000;
server localhost:3001;
}
server {
listen 145.239.24.196:80;
server_name app.backtocart.co;
location / {
proxy_cache appbacktocartcocatch;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://appbacktocartco;
proxy_read_timeout 90;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/app.backtocart.co/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/app.backtocart.co/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}
Jetzt muss ich nur noch eine andere App wie diese auf Port 5000 ausführen. Ich habe diese Datei einfach kopiert, versucht, ein paar Dinge zu ändern, dann habe ich nginx neu gestartet, aber es sind einige Fehler aufgetreten, die ich nicht verstehe. Können Sie mir dabei helfen?
BEARBEITEN
Hier ist nur eine Möglichkeit, die ich versucht habe
# proxy_cache_path /home/html_catch levels=1:2 keys_zone=appbacktocartcocatch:2m max_size=50m;
# proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
# proxy_cache_valid 200 302 10m;
# proxy_cache_valid 404 1m;
upstream appbacktocartco {
# server localhost:3000;
server localhost:5000;
}
server {
listen 145.239.24.196:80;
server_name chatservice.backtocart.co;
location / {
proxy_cache chatservicebacktocartcocatch;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://chatservicebacktocartco;
proxy_read_timeout 90;
}
}
Dann mach ich
/etc/init.d/nginx restart
und bekomme
[....] Restarting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
failed!
systemctl status nginx.service
bringt das
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2018-02-20 13:24:26 CET; 3min 4s ago
Process: 28185 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=2)
Process: 17317 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 28188 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Main PID: 17319 (code=exited, status=0/SUCCESS)
Feb 20 13:24:26 ns3068281 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 20 13:24:26 ns3068281 nginx[28188]: nginx: [emerg] duplicate upstream "appbacktocartco" in /etc/nginx/sites-enabled/chatservice.backtocart.co.conf:7
Feb 20 13:24:26 ns3068281 nginx[28188]: nginx: configuration file /etc/nginx/nginx.conf test failed
Feb 20 13:24:26 ns3068281 systemd[1]: nginx.service: Control process exited, code=exited status=1
Feb 20 13:24:26 ns3068281 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Feb 20 13:24:26 ns3068281 systemd[1]: nginx.service: Unit entered failed state.
Feb 20 13:24:26 ns3068281 systemd[1]: nginx.service: Failed with result 'exit-code'.
Und journalctl -xe
bringt das
Feb 20 13:25:12 ns3068281 sshd[28260]: input_userauth_request: invalid user ts3 [preauth]
Feb 20 13:25:12 ns3068281 sshd[28260]: pam_unix(sshd:auth): check pass; user unknown
Feb 20 13:25:12 ns3068281 sshd[28260]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=158.69.204.69
Feb 20 13:25:14 ns3068281 sshd[28260]: Failed password for invalid user ts3 from 158.69.204.69 port 45584 ssh2
Feb 20 13:25:14 ns3068281 sshd[28260]: Received disconnect from 158.69.204.69 port 45584:11: Normal Shutdown, Thank you for playing [preauth]
Feb 20 13:25:14 ns3068281 sshd[28260]: Disconnected from 158.69.204.69 port 45584 [preauth]
Feb 20 13:26:00 ns3068281 nrpe[28264]: ERROR: my_system() seteuid(0): Operation not permitted
Feb 20 13:26:01 ns3068281 CRON[28267]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 20 13:26:01 ns3068281 CRON[28268]: (root) CMD (/usr/local/rtm/bin/rtm 41 > /dev/null 2> /dev/null)
Feb 20 13:26:01 ns3068281 CRON[28267]: pam_unix(cron:session): session closed for user root
Feb 20 13:27:01 ns3068281 CRON[28310]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 20 13:27:01 ns3068281 CRON[28311]: (root) CMD (/usr/local/rtm/bin/rtm 41 > /dev/null 2> /dev/null)
Feb 20 13:27:01 ns3068281 CRON[28310]: pam_unix(cron:session): session closed for user root
Feb 20 13:27:17 ns3068281 nrpe[28355]: ERROR: my_system() seteuid(0): Operation not permitted
Feb 20 13:27:47 ns3068281 sshd[28415]: Invalid user ts3 from 158.69.204.69
Feb 20 13:27:47 ns3068281 sshd[28415]: input_userauth_request: invalid user ts3 [preauth]
Feb 20 13:27:47 ns3068281 sshd[28415]: pam_unix(sshd:auth): check pass; user unknown
Feb 20 13:27:47 ns3068281 sshd[28415]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=158.69.204.69
Feb 20 13:27:49 ns3068281 sshd[28415]: Failed password for invalid user ts3 from 158.69.204.69 port 38540 ssh2
Feb 20 13:27:49 ns3068281 sshd[28415]: Received disconnect from 158.69.204.69 port 38540:11: Normal Shutdown, Thank you for playing [preauth]
Feb 20 13:27:49 ns3068281 sshd[28415]: Disconnected from 158.69.204.69 port 38540 [preauth]
Feb 20 13:28:01 ns3068281 CRON[28417]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 20 13:28:01 ns3068281 CRON[28418]: (root) CMD (/usr/local/rtm/bin/rtm 41 > /dev/null 2> /dev/null)
Feb 20 13:28:01 ns3068281 CRON[28417]: pam_unix(cron:session): session closed for user root
lines 1012-1035/1035 (END)
Antwort1
Ihr Fehler liegt in den Konfigurationsdateien, in denen Sie die Upstreams konfigurieren:
upstream appbacktocartco {
# server localhost:3000;
server localhost:5000;
}
Damit dies funktioniert, müssen Sie für den Upstream andere Namen verwenden.
Auch in der zweiten Konfigurationsdatei verwenden Sie
proxy_pass http://chatservicebacktocartco;
welche mit dem entsprechenden Upstream übereinstimmen muss.
Auch die Fehlermeldung ( nginx: [emerg] duplicate upstream "appbacktocartco"
) nennt dies als Problem.