Bugün yeni teknolojiye geçişte yaşadığım sıkıntıları başkalarının yaşamaması için bir sorunu ve çözümünü paylaşacağım.
Local'de (Windows 10 & IIS) çalışan fakat sunucuda (Ubuntu > Nginx & Kestrel) çalışmayan bir özellikten bahsedeceğim. Amacım basit bir iletişim formu yapıp, veritabanına kayıt yaptırmaktı. Fakat web sitesini yayına alıp veritabanına buton ile bilgileri göndermeye çalıştığımda 'Bad Request 400' hatası alıyordum. Bu aşamada sorunun neyden kaynaklandığını anlamak oldukça zor. Hem teknolojide yeni olmamdan kaynaklı, hemde gerçekten sorunun sebeplerinin fazlaca olabilmesi çözüme ulaşmamı zorlaştırdı.
Acaba sorun veritabanı bağlantısında mı, kestrel sunucusunda mı, nginx tarafında mı, istek gönderilirken doğrulama sorunları mı meydana geliyor derken, Nginx tarafındaki yanlış yapılandırmayı düzelttiğimde problem ortadan kalktı.
NGINX yapılandırma dosyasında yapılması gereken değişikliker;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
Connection kısmında 'upgrade' yerine '$http_connection' değerini girince problem çözüldü.