Apache dışında Nginx mevcut en popüler web sunucusudur. Web sunucusu olmasının yanı sıra yük dengeleyici veya ters proxy olarak da kullanılabilir. Bu eğitimde Quantrimang.com size Nginx'i ters proxy olarak nasıl kullanabileceğinizi gösterecek.
Ters proxy nedir?
Proxy sunucusu, istemci ile başka bir sunucu arasında aracı görevi görür. Proxy sunucusu, bağlanmak istediğiniz sunucudan kaynakları alır ve görüntülemeniz için size gönderir. Ters proxy, rollerin tersine çevrilmesi dışında aynı şekilde çalışır. Sunucudan bilgi talep ettiğinizde, ters proxy, talebi tutar ve uygun arka uç sunucusuna gönderir. Bu, sistem yöneticilerinin sunucuyu birden fazla uygulama için kullanmasına olanak sağlamanın yanı sıra istemci ve sunucu arasında daha sorunsuz bir trafik akışı sağlar.

Ters proxy'lerin faydaları
Uygulamanıza bağlı olarak farklı ters proxy kullanım durumlarınız olabilir.
- Ters proxy, aynı sunucuda birden fazla uygulamayı çalıştırmanıza olanak tanır - Aynı sunucuda çalışan birden fazla uygulamanız varsa, bunların tümü 80 veya 433 numaralı bağlantı noktasını aynı anda "dinleyemez". Ters proxy ile bunu yapılandırabilirsiniz. Gerekirse trafiği bireysel uygulamalara yönlendirmek için.
- Yük dengeleme - Aynı uygulamayı çalıştıran birden fazla sunucunuz varsa trafiği her sunucuya eşit şekilde dağıtmak için ters proxy kullanabilirsiniz.
- Web uygulaması güvenlik duvarı - Uygulamanızı gizlemek ve ayrıca spam IP'leri filtrelemek veya DDOS saldırısından korunmak için ters proxy kullanabilirsiniz .
- Kolay günlük kaydı ve denetim - Gelen tüm trafik ters proxy tarafından yönetildiğinden, trafik akışlarını günlüğe kaydetmek ve izlemek daha kolaydır.
Nginx'i ters proxy olarak yapılandırma
Nginx'i ters proxy olarak ayarlamak için makale, Nginx yapılandırma dosyasındaki proxy_pass parametresini kullanacaktır.
Not : Bu eğitimde, Nginx hakkında biraz bilgi sahibi olduğunuz ve Nginx'i sunucunuza kurup kurduğunuz varsayılmaktadır.
Çoğu kullanım durumunda Nginx, gelen istekler için 80 (HTTP) veya 443 (HTTPS) bağlantı noktasını "dinleyen" ön uç sunucu olacaktır. 80 veya 443 numaralı bağlantı noktasında yalnızca bir "dinleyen" hizmet olabileceğinden, uygulamanızın 8081 numaralı bağlantı noktası gibi başka bir bağlantı noktasını "dinlemesi" gerekecektir. En basit yapılandırma şu şekilde görünecektir:
server {
listen 80;
listen [::]:80;
server_name myapp.com;
location / {
proxy_pass http://localhost:8081/;
}
}
Bu, 80 numaralı bağlantı noktasından myapp.com'a yapılan tüm isteklerin 8081 numaralı bağlantı noktasına yönlendirileceği anlamına gelir .
Gelişmiş Ayarlar
proxy_pass yönergesine ek olarak , daha gelişmiş kurulum için kullanabileceğiniz başka yönergeler de vardır.
- proxy_set_header - Bu, arka plan uygulamasına gönderilecek bir başlık ayarlamanıza olanak tanır. Örneğin aşağıdaki yapılandırmaya bakın:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Uygulamaya geçmek için gerekli proxy başlıklarını ayarlayabilir, istek IP'sini ve uzak adresini söyleyebilir ve ardından doğru içeriği istekte bulunan web sitesine gönderebilirsiniz.
- proxy zaman aşımı - Bu, proxy isteklerini göndermek ve almak için zaman aşımı değerini ayarlamanıza olanak tanır. Örneğin:
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
- proxy_buffers - Bu, Nginx'in proxy sunucusunun yanıtını geçici olarak tutmasına ve bunu yalnızca proxy sunucusu yanıt vermeyi tamamladıktan sonra istekte bulunan sunucuya göndermesine olanak tanır. Örneğin:
proxy_buffers 32 4k;
Uygulamanız çok sayıda dosya gönderiyorsa proxy_buffers'ı devre dışı bırakmak isteyebilirsiniz:
proxy_buffering off;
Gördüğünüz gibi Nginx, birçok kullanıma sahip bir ters proxy sunucusudur. En büyük artısı, yapılandırmasının basit olması, kullanımının kolay olması ve yine de daha karmaşık senaryolarda ölçeklendirme yapmanıza olanak sağlamasıdır. Daha fazla ayrıntı için Nginx proxy modülü belgelerine ( https://nginx.org/en/docs/http/ngx_http_proxy_module.html adresinde) veya yapılandırma örneklerine ( https://www .nginx.com/resources/wiki adresinde ) bakabilirsiniz. /start/konular/örnekler/tam/).
Umarım başarılısınızdır.