Ich habe eine Website mit ASP.NET Core erstellt, und vorher lief sie in IIS problemlos.
Jetzt ändere ich es mit Nginx auf CentOS8.
Das Projekt läuft gut in CentOS8 per URLhttp://0.0.0.0:5001
Als Reverse-Proxy-Server wird Nginx verwendet. Wenn ich jedoch über den lokalen Computer auf die Website zugreife, wird 502 Bad Gateway
ein Fehler gemeldet.
Hier sind die Protokolle error.log
:
2020/01/24 08:47:47 [notice] 1#1: using the "epoll" event method
2020/01/24 08:47:47 [notice] 1#1: nginx/1.17.7
2020/01/24 08:47:47 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2020/01/24 08:47:47 [notice] 1#1: OS: Linux 4.18.0-147.3.1.el8_1.x86_64
2020/01/24 08:47:47 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2020/01/24 08:47:47 [notice] 1#1: start worker processes
2020/01/24 08:47:47 [notice] 1#1: start worker process 6
2020/01/24 08:47:49 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 113.109.81.57, server: www.sealribbon.com, request: "GET / HTTP/1.1", upstream: "http://0.0.0.0:5001/", host: "www.sealribbon.com"
2020/01/24 08:47:50 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 113.109.81.57, server: www.sample.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://0.0.0.0:5001/favicon.ico", host: "www.sealribbon.com", referrer: "https://www.sample.com/"
2020/01/24 08:47:59 [info] 6#6: *1 client 113.109.81.57 closed keepalive connection
2020/01/24 08:47:59 [info] 6#6: *2 client closed connection while waiting for request, client: 113.109.81.57, server: 0.0.0.0:443
Und hier ist meins nginx.conf
:
user root;
worker_processes 1;
error_log /var/log/nginx/error.log info;
worker_rlimit_nofile 1024;
events {
worker_connections 1024;
}
http {
proxy_http_version 1.1;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
client_max_body_size 50m;
include 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;
keepalive_timeout 65;
gzip on;
sendfile on;
gzip_buffers 16 8k;
gzip_comp_level 2;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/x-javascript
text/x-json application/json application/x-web-app-manifest+json
text/css text/plain text/x-component
font/opentype font/ttf application/x-font-ttf application/vnd.ms-fontobject
image/x-icon image/jpeg image/gif image/png;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream backend {
server 0.0.0.0;
}
server {
listen 80;
server_name www.sample.com *.sample.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.sample.com *.sample.com;
ssl_certificate /etc/nginx/cert/3390293_sample.com.pem;
ssl_certificate_key /etc/nginx/cert/3390293_sample.com.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
location / {
proxy_pass http://0.0.0.0:5001;
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_redirect off;
index index.html;
}
}
}
Bei meiner Google-Suche scheint es viele ähnliche Probleme gegeben zu haben.
Jemand sagte, ich solle diesetsebool -P httpd_can_network_connect 1
Ich habe es versucht, aber das Problem besteht weiterhin.
Ich bin nur ein Anfänger. Bitte sagen Sie mir, wie ich das Problem lösen kann. Danke.
Antwort1
0.0.0.0
ist keine gültige IP-Adresse. Geben Sie die korrekte Adresse Ihres Backend-Servers ein.
Antwort2
Danke für @Gerald Schneiders Hilfe.
Ich ändere diese beiden Codes: upstream backend { server 172.18.92.125:5001; }
Proxy-Passworthttp://172.18.92.125:5001;
Und endlich funktioniert es.