NGINX, bir web sunucusu olarak kullanılabildiği gibi, aynı zamanda bir proxy sunucusu olarak da kullanılabilir. Bunun birkaç faydası vardır:
- 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.
- 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.
- 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.
- İç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..