estoy usando nginx1.14.2como proxy inverso con la siguiente configuración
server {
listen xxxxxxx:80;
server_name xxxxxx;
proxy_intercept_errors on;
location /nodejs {
proxy_pass https://nodejs.org;
proxy_cache cache;
proxy_cache_valid 200 301 302 30d;
proxy_cache_valid 404 1m;
expires 30d;
proxy_ssl_server_name on;
proxy_cache_use_stale error timeout invalid_header updating;
}
}
Me estoy poniendo502 Puerta de enlace no válidaen el navegador:ingrese la descripción de la imagen aquí En los registros de errores de nginx, encontré la siguiente línea:
2020/12/10 11:23:23 [error] 16462#16462: *1 connect() failed (110: Connection timed out) while connecting to upstream, client: xxxxxxx, server: xxxxxxxx, request: "GET /nodejs HTTP/1.1", upstream: "https://104.20.23.46:443/nodejs", host: "xxxxxxxx"
Pero como hay un proxy en el backend, la URL con la dirección IP está bloqueada. ¿Tiene alguna idea de cómo forzar a nginx a usar el nombre de dominio en lugar de la dirección IP en sentido ascendente?
Gracias.
Editar: agregué la siguiente línea a la configuración de proxy_pass:
rewrite /nodejs/(.*) /dist break;
Ahora el registro de errores es así:
2020/12/10 12:22:37 [error] 16541#16541: *1 connect() failed (110: Connection timed out) while connecting to upstream, client: xxxxxxx, server: xxxxxxxx, request: "GET /nodejs HTTP/1.1", upstream: "https://104.20.22.46:443/dist", host: "xxxxxxx"
Respuesta1
Necesita esta directiva: proxy_ssl_server_name on;
el valor predeterminado está desactivado.
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_server_name