Android

Http'yi nginx'te https'ye yönlendir

Протокол HTTP | Курс "Компьютерные сети"

Протокол HTTP | Курс "Компьютерные сети"

İçindekiler:

Anonim

Bu kılavuzda, HTTP trafiğinin Nginx'te HTTPS'ye nasıl yönlendirileceğini açıklayacağız.

Nginx telaffuz edilen "motor x", İnternet'teki en büyük sitelerin bazılarının yüklenmesinden sorumlu olan ücretsiz, açık kaynaklı, yüksek performanslı bir HTTP ve ters proxy sunucusudur.

İsteklerin ve yanıtların düz metin olarak gönderilip döndürüldüğü HTTP'den farklı olarak HTTPS, istemci ve sunucu arasındaki iletişimi şifrelemek için TLS / SSL kullanır.

HTTP üzerinden HTTPS kullanmanın birçok faydası vardır, örneğin:

  • Tüm veriler her iki yönde de şifrelenir. Sonuç olarak, hassas bilgiler ele geçirilirse okunamaz.Google Chrome ve diğer tüm popüler tarayıcılar web sitenizi güvenli olarak işaretler.HTTPS, site performansını önemli ölçüde artıran HTTP / 2 protokolünü kullanmanıza olanak tanır.Google, HTTPS web sitelerini tercih eder. Siteniz HTTPS üzerinden sunulursa daha iyi sıralanır.

HTTP'yi Nginx'te HTTPS'ye yönlendirmek için tercih edilen yöntem, sitenin her sürümü için ayrı bir sunucu bloğu yapılandırmaktır. Sunucunun öngörülemeyen davranışlarına neden olabileceğinden, if yönergesini kullanarak trafiği yeniden yönlendirmekten kaçınmalısınız.

HTTP'yi Site Başına HTTPS'ye Yönlendirme

Tek bir web sitesini HTTPS'ye yeniden yönlendirmek için etki alanı yapılandırma dosyasını açın ve aşağıdaki değişiklikleri yapın:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Kod satır satır ayrılacak:

  • listen 80 - Sunucu bloğu, belirtilen etki alanı için bağlantı noktası 80'de gelen bağlantıları dinler. server_name linuxize.com www.linuxize.com - Sunucu bloğunun etki alanı adlarını belirtir. Alan adınızla değiştirdiğinizden emin olun. return 301 - Trafiği sitenin HTTPS sürümüne yönlendirin. $request_uri değişkeni, bağımsız değişkenler dahil olmak üzere tam orijinal istek URI'sidir.

Genellikle, sitenin HTTPS www sürümünü www olmayan ya da tam tersine yönlendirmek de istersiniz. Yönlendirmeyi yapmanın önerilen yolu, hem www hem de www olmayan sürümler için ayrı bir sunucu bloğu oluşturmaktır.

Örneğin, HTTPS www isteklerini www olmayanlara yönlendirmek için aşağıdaki yapılandırmayı kullanırsınız:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Tüm Siteleri HTTPS'ye Yönlendir

Sunucuda barındırılan tüm web siteleri HTTPS kullanacak şekilde yapılandırılmışsa ve her site için ayrı bir HTTP sunucu bloğu oluşturmak istemiyorsanız, tek bir tümünü yakala HTTP sunucu bloğu oluşturabilirsiniz. Bu blok, tüm HTTP isteklerini uygun HTTPS bloklarına yönlendirecektir.

Ziyaretçileri sitenin HTTPS sürümüne yönlendirecek tek bir tümünü yakalama HTTP bloğu oluşturmak için Nginx yapılandırma dosyasını açın ve aşağıdaki değişiklikleri yapın:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Kodu satır satır analiz edelim:

  • listen 80 default_server - Bu sunucu bloğunu, eşleşmeyen tüm alan adları için varsayılan (tümünü yakala) bloğu olarak ayarlar. server_name _ - _ hiçbir zaman gerçek etki alanı adıyla eşleşmeyen geçersiz bir etki alanı adıdır. return 301 - Trafiği, 301 durum koduyla (Kalıcı Olarak Taşındı) karşılık gelen HTTPS sunucu bloğuna yönlendirin. $host değişkeni isteğin alan adını tutar.

Örneğin, ziyaretçi tarayıcıda http://example.com/page2 açarsa, Nginx isteği https://example.com/page2 yönlendirir.

Mümkünse, genel HTTP'den HTTPS'ye yeniden yönlendirme yerine alan adı başına bir yönlendirme oluşturmayı tercih edin.

Sonuç

Web sitenize bir SSL sertifikası yüklendikten sonra, HTTP trafiğini HTTPS'ye yönlendirmelisiniz.

Nginx'te, HTTP'yi HTTPS'ye yönlendirmenin tercih edilen yolu ayrı bir sunucu bloğu oluşturmak ve 301 yönlendirmesi yapmaktır.

nginx