Apakah mungkin menggunakan Nginx sebagai proxy HTTP / HTTPS?
16
Setelah beberapa pengujian, saya menemukan bekerja untuk saya konfigurasi berikut.
server {
server_name ~^(www\.)?(?<domain>.+)$;
access_log /var/log/nginx/proxy.access.log main;
error_log /var/log/nginx/proxy.error.log crit;
listen 10.255.1.13:8080;
resolver 8.8.8.8;
location / {
proxy_pass http://$domain;
proxy_redirect off;
proxy_set_header Host $host;
# Optional headers
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For
# $proxy_add_x_forwarded_for;
}
}
Konfigurasi ini hanya berfungsi untuk HTTP, bukan untuk HTTPS.
listen ... default_server
. 2:server_name ""
atauserver_name _
. 2:proxy_pass $scheme://$http_host
. Batasannya: poxying ke upstreams dengan port 80 saja; tidak memproses pengalihan sendiri.Saya pikir jawaban singkatnya adalah tidak, itu tidak ditulis untuk meneruskan proxy
MEMPERBARUI
untuk mengklarifikasi pernyataan saya di atas:
NGINX tidak pernah ditulis dengan proksi maju dalam pikiran - sementara mungkin untuk mengatur konfigurasi untuk melakukan apa yang Anda inginkan, Anda harus memahami batasan berikut:
Kemungkinan pertimbangan lain yang tidak diketahui saat ini:
sumber
Jika Anda ingin menggunakan proxy HTTP / HTTPS, Anda harus menggunakan Squid. Itu ditulis untuk melakukan hal itu. Nginx ditulis untuk bertindak sebagai proxy terbalik dan penyeimbang beban, tetapi bukan proxy yang maju.
sumber