Uygulamamı barındırmak için bir ASP.NET Çekirdek Ortamı kurmaya çalışıyorum ancak nginx web sunucusu ile ilgili sorun yaşıyorum. Etki alanıma bağlanmayı denediğimde anladım 502 Bad Gateway
. Nginx sadece kerkenez için proxy sunucusu olarak çalışmalı.
İşte takip ettiğim rehbere bağlantı. Config hemen hemen microsoft tarafından önerilen config, sadece her ortam için farklı olan değişkenleri değiştirdim.
Sorunlu olan çizgi http://aspdotnethost;
nginx.conf yapılandırmasının sonundadır. Yorum yaptığımda varsayılan www konumuna yönlendiriliyorum.
Peki, çizgi gerçekte nasıl çalışır ve düzgün bir şekilde localhost: 5000'e yönlendirmeyi nasıl yönetebilirim?
/etc/nginx/proxy.conf
proxy_redirect off;
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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
include /etc/nginx/proxy.conf;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server_tokens off;
sendfile on;
keepalive_timeout 29; # Adjust to the lowest possible value that makes sense for your use case.
client_body_timeout 10; client_header_timeout 10; send_timeout 10;
upstream aspdotnethost {
server localhost:5000;
}
server {
listen *:80;
add_header Strict-Transport-Security max-age=15768000;
return 301 https://$host$request_uri;
}
server {
listen *:443 ssl;
server_name example.com *.example.com;
#Redirects all traffic
location / {
proxy_pass http://aspdotnethost;
limit_req zone=one burst=10;
}
}
}
Nginx yapılandırma kontrolü:
[root@rs-zap353479-1 patrick]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ben yazarken curl http://localhost:5000
o zaman html belge iade olsun. Yani bu bileşen gözlerimde finde olmalı.
/etc/hosts
ASP sunucunuzun IP'sini ( aspdotnethost
nginx konfigürasyonunuzda adlandırdığınız gibi) adıyla dahil etmek için düzenleyin
curl 'http://aspdotnethost'
CentOS sunucusunda çalışırsanız ne olur ?