În cele din urmă, intenționez să configurez nginx să proxy conținutul de la serviciile web pe diferite gazde. După cum am configurat în prezent, folosesc nginx Proxy Manager cu nginx în containerele Docker. Pentru a exclude complexitatea instalării serviciului web din problemele de configurare a proxy-ului invers, am configurat servere web cu conținut static.
- Am Apache într-un container din aceeași rețea docker ca și containerul nginx.
- Am IIS pe stația mea de lucru.
După cum puteți vedea din această captură, am configurat cu succes nginx pentru a proxy IIS-ul stației mele de lucru (să nu mai vorbim de o intrare DNS publică pentru interfața mea externă. Funcționează bine.
Aceste capturi arată că containerul Apache mapează de la 80 la 8080 pe gazda docker, care este numită în mod imaginativ dockerhost, iar browserul de pe stația mea de lucru poate accesa atât documentul rădăcină, cât și un alt document după nume.
În acest moment, am modificat definiția gazdei proxy nginx pentru a defini o locație personalizată. În rețeaua docker Apache este pe portul 80; Acesta este motivul pentru care am specificat 80 în loc de 8080.
Acest lucru pare să funcționeze.
...până când încercați să încărcați o altă resursă din Apache, dar obțineți același conținut.
Se pare că absolut orice începe cu apache/
este mapat la documentul rădăcină.
În acest moment, m-am întors și am căutat documentație, dar nu am găsit nimic relevant.
Schimbarea lucrurilor, astfel încât nginx să folosească proxy IIS și locația personalizată iis
puncte la IIS de pe stația mea de lucru prezintă exact aceeași problemă, de data aceasta cu IIS.
Cum ar trebui exprimată această configurație?
Este de preferat un răspuns bazat pe Proxy Manager, am destul de multe de învățat înainte de a putea folosi instrucțiunile privind hackingul direct al configurației nginx.
Acestea fiind spuse, pentru utilizare de diagnosticare, iată configurația generată.
# --------------------------------------------- -----------
# wone.pdconsec.net
# --------------------------------------------- -----------
Server {
setați $forward_scheme http;
setați $server "pnuc.lan";
seteaza $port 80;
asculta 80;
asculta [::]:80;
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server wone.pdconsec.net;
# Să criptăm SSL
include conf.d/include/letsencrypt-acme-challenge.conf;
include conf.d/include/ssl-ciphers.conf;
ssl_certificate /etc/letsencrypt/live/npm-1/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/npm-1/privkey.pem;
access_log /data/logs/proxy-host-1_access.log proxy;
error_log /data/logs/proxy-host-1_error.log warn;
locație /apache {
setați $upstream http://apache:80/;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Forwarded-Scheme $schema;
proxy_set_header X-Forwarded-Proto $schema;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_pass $amonte;
}
Locație / {
# Proxy!
include conf.d/include/proxy.conf;
}
# Personalizat
include /data/nginx/custom/server_proxy[.]conf;
}