Am o problemă cu configurația mea NGINX. Am două servere web care rulează pe servere Windows. Care este apelat din exterior cu 443 și apoi ar trebui să fie redirecționat către server cu 41001. Al doilea bloc de server ar trebui să fie numit FQDN și nginx ar trebui să îl trimită la FQDN.com/test. Intern si extern.
Pe primul bloc de server, acest lucru durează o veșnicie să se încarce și nimic nu pare să funcționeze. Cu al doilea bloc de server primesc un 404 înapoi.
Așa arată configurațiile mele și jurnalele de erori
Server {
nume_server test.example.com;
returnează 301 http://test.example.com/test$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
access_log /var/log/nginx/test_service_access.log;
error_log /var/log/nginx/test_service_error.log;
ssl_certificate /etc/nginx/ssl/test.com.pem;
ssl_certificate_key /etc/nginx/ssl/test.key;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-DHACH3820:-DHACH3840: -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-G> ssl_prefer_server_ciphers dezactivat;
locație /test {
proxy_pass https://10.10.10.10/test/;
}
client_max_body_size 0;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_read_timeout 90s;
send_timeout 90;
}
Server {
nume_server test2.example.com;
# Redirecționează toate solicitările HTTP către HTTPS cu un răspuns 301 Mutat permanent.
returnează 301 https://test2.example.com$request_uri;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server test2.example.com;
access_log /var/log/nginx/test2_service_access.log;
error_log /var/log/nginx/test2_service_error.log;
certificat_ssl /etc/nginx/ssl/test2.example.com.pem;
ssl_certificate_key /etc/nginx/ssl/test2example.key;
# ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-DHACH3820:-DHACH3840: -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-G>
ssl_prefer_server_ciphers dezactivat;
add_header Strict-Transport-Security max-age=15768000;
Locație / {
# resolver 10.150.10.10 8.8.8.8;
proxy_pass https://test2.example.com:41001/;
proxy_redirect https://test2.example.com:41001/ https://test2.example.com/;
client_max_body_size 0;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_read_timeout 90s;
send_timeout 90;
}
}
}
M-am uitat la error.logs și asta a apărut.
2022/02/13 12:54:58 [eroare] 2620#2620: *15 open() „/usr/share/nginx/html/DocuWare/Platform/LoginRedirect” a eșuat (2: Nu există un astfel de fișier sau director), client : xxx.xxx.xxx.xxx, server: , cerere: „GET /DocuWare/Platform/LoginRedirect?returnUrl=%2fdocuware%2fPlatform%2fWebClient%2f HTTP/2.0”, gazdă: „test2.domain.com”, referitor: „https://test.domain.com/docuware/Platform/WebClient/”
2022/02/13 12:35:17 [eroare] 2541#2541: *1 expirat în amonte (110: Conexiune a expirat) în timpul conectării la amonte, client:
In ceea ce priveste prima eroare, nu inteleg exact ce este in neregula
După cum am înțeles, trebuie să definesc un upstream pentru serverul cu portul 41001, este corect?
Oare imi scapa ceva aici?
ACTUALIZAȚI
Mi-am ajustat configurația la cea mai mică, astfel încât să pot testa asta. După cum urmează, configurația mea arată așa
#################################################################### ####################
abacus în amonte {
server 10.120.50.11;
}
Server {
asculta 80;
nume_server abacus.example.com;
returnează 301 https://abacus.example.com$request_uri;
}
Server {
asculta 443 ssl;
nume_server abacus.example.com;
ssl_certificate /etc/nginx/ssl/xxx.com.pem;
ssl_certificate_key /etc/nginx/ssl/xxx.key;
ssl_protocols TLSv1.2 TLSv1.3;
access_log /var/log/nginx/abacus_service_access.log;
error_log /var/log/nginx/abacus_service_error.log;
Locație / {
proxy_pass http://abacus;
}
}
#################################################################### #####################
docuware upstream {
server 10.120.50.10;
}
Server {
asculta 80;
nume_server docuware.example.com;
returnează 301 https://docuware.example.com$request_uri;
}
Server {
asculta 443 ssl;
nume_server docuware.example.com;
ssl_certificate /etc/nginx/ssl/xxx.pem;
ssl_certificate_key /etc/nginx/ssl/xxx.key;
ssl_protocols TLSv1.2 TLSv1.3;
access_log /var/log/nginx/docuware_service_access.log;
error_log /var/log/nginx/docuware_service_error.log;
Locație / {
proxy_pass http://docuware/docuware;
}
}
}
Când accesez serverul „abacus.example.com”, ajung la pagina de pornire a IIS.
Deci aici trebuie să definesc că vin din afară cu 443 (HTTPS) și sunt redirecționat către portul 23001.
Dacă accesez serverul „docuware.example.com/docuware”, primesc un 404 - Fișierul sau directorul nu a fost găsit.
Deci aici trebuie să definesc cumva că poate accesa serverul cu subpath.
În rețeaua internă aceasta funcționează fără probleme.
Sunt redirecționat către „docuware.example.com/DocuWare/Platform/WebClient/ClientAccount/xxx”.
Vedeți aici ce trebuie să ajustez? M-am bătut cu capul de ore întregi.