NGINX Proxy Sunucusu

Share

NGINX, bir web sunucusu olarak kullanılabildiği gibi, aynı zamanda bir proxy sunucusu olarak da kullanılabilir. Bunun birkaç faydası vardır:

  1. Yük Dağılımı: NGINX, birçok isteği birden alabilir ve bu istekleri diğer sunuculara yönlendirerek yük dağılımı yapabilir. Böylece sunucunuzun performansını arttırabilir ve işlem gücünü verimli kullanabilirsiniz.
  2. Güvenlik: NGINX, istekleri filtreleyebilir ve güvensiz içeriği engelleyebilir. Ayrıca, SSL/TLS sertifikalarını proxy sunucusunda terminasyonu ile güvenliği arttırabilirsiniz.
  3. Erişim Kontrolü: NGINX, belirli kullanıcı gruplarına veya IP adreslerine sunucuya erişim izni vermenizi sağlayabilir. Böylece sunucunuzun güvenliğini arttırabilirsiniz.
  4. İçerik Optimizasyonu: NGINX, istekleri kısaltabilir, sıkıştırabilir veya önbellekleme yapabilir. Böylece sunucunuzun performansını arttırabilir ve kullanıcıların sayfa yükleme sürelerini hızlandırabilirsiniz.

Bu faydalardan yararlanmak istiyorsanız, NGINX’i proxy sunucusu olarak kullanmanızı öneririm.

NGINX Proxy Sunucu Olarak Kullanma

Nginx kullanarak bir proxy server oluşturmak için izlememiz gereken adımlar oldukça kolaydır.

  • nginx.conf içerisinde son satırda (include “/etc/nginx/sites-available/*”;) sites-available dizininde bulunan bütün cofları dahil ettiğini göreceksiniz. Öncelikle bu dizinde kendi conf dosyamızı oluşturmamız gerekiyor;
sudo mkdir hostname.conf
  • Ardından yapılandırmamızı oluşturduğumuz conf dosyasının içine yazmamız gerekiyor bunun için nano editörü ile dosyamızı açıyoruz;
sudo nano hostname.conf
  • Conf dosyamızda olması gereken ayarlar şu şekildedir;

nginx-server-ip : nginx kurulu olan sunucunuzun ip adresi olması gerekiyor.
alanadi.com : alan adınızı girmeniz gerekiyor.
yönlendirilen-server-ip : Gelen istekleri hangi sunucu IP adresine yönlendirmek istiyorsanız.

server {
listen  nginx-server-ip:80;
listen  nginx-server-ip:443;
server_name

alanadi.com

*.alanadi.com
;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
add_header Secured_By nekil;

location ~ (.well*) {
proxy_pass http://yönlendirilen-server-ip:80;
proxy_connect_timeout 600s;
proxy_send_timeout   600;
proxy_read_timeout   600;
proxy_buffer_size    64k;
proxy_buffers     16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass_header Set-Cookie;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
#proxy_ignore_headers Cache-Control Expires;
proxy_set_header   Referer $http_referer;
proxy_set_header   Host   $host;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


location /img {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yönlendirilen-server-ip:80;
proxy_connect_timeout 600s;
proxy_send_timeout   600;
proxy_read_timeout   600;
proxy_buffer_size    64k;
proxy_buffers     16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass_header Set-Cookie;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
#proxy_ignore_headers Cache-Control Expires;
proxy_set_header   Referer $http_referer;
proxy_set_header   Host   $host;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header X-Cache-Status $upstream_cache_status;
#proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
gzip on;

}

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yönlendirilen-server-ip:80;
proxy_connect_timeout 600s;
proxy_send_timeout   600;
proxy_read_timeout   600;
proxy_buffer_size    64k;
proxy_buffers     16 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass_header Set-Cookie;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
#proxy_ignore_headers Cache-Control Expires;
proxy_set_header   Referer $http_referer;
proxy_set_header   Host   $host;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header X-Cache-Status $upstream_cache_status;
#proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
gzip on;

}

}
  • Ardından sözdizimi kontrolü için;
sudo nginx -t
  • Değişikliklerin yürürlüğe girmesi için nginx’i yeniden başlatmamız gerekiyor.
sudo systemctl restart nginx

Yönlendirmelerinizi Nginx Proxy Serverınıza yönlendirdikten sonra gerisini Nginx halledecektir..