Después de que el proxy inverso de Nginx configura la redirección HTTPS, el protocolo se convierte en HTTP

400 Solicitud incorrecta: la solicitud HTTP simple se envió al puerto HTTPS

1. Introducción a los antecedentes

A través Nginxdel servicio de backend proxy, Nginxsolo se monitorea el puerto HTTPS, y al ingresar a otras interfaces a través de la interfaz abierta por primera vez, se cambia al HTTPprotocolo y no se puede abrir. Después de cambiar HTTPSa, la interfaz después del salto también se puede abrió. En circunstancias normales, cuando escuchamos dos puertos, este problema se soluciona, porque podemos usar 301 para hacer una redirección. Pero actualmente solo abro el HTTPSacuerdo.

server {
    
    
    listen 23182 ssl;
    server_name test.example.com;

    ssl_certificate /etc/nginx/ssl/example.com/example.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;

    access_log /var/log/nginx/example-test.access.log main;
    error_log  /var/log/nginx/example-test.err.log    warn;

    location / {
    
    
            proxy_pass http://10.10.1.21:8080;
            proxy_set_header        Host $host:$server_port;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size    10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout   5;
            proxy_send_timeout      10;
            proxy_read_timeout      10;
            proxy_buffer_size       4k;
            proxy_buffers           4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    }
}

2. Resolución de problemas

proxy_redirect http:// https:// Esta configuración puede resolver el problema de httpsconvertirse después de la redirección http. proxy_redirectLa función es relativamente poderosa y su función es modificar la URL enviada al cliente.

server {
    
    
    listen 23182 ssl;
    server_name test.example.com;

    ssl_certificate /etc/nginx/ssl/example.com/example.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;

    access_log /var/log/nginx/example-test.access.log main;
    error_log  /var/log/nginx/example-test.err.log    warn;

    location / {
    
    
            proxy_pass http://10.10.1.21:8080;
            proxy_redirect          http:// https://;               # 这个配置
            proxy_set_header        Host $host:$server_port;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;      # 这个配置
            client_max_body_size    10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout   5;
            proxy_send_timeout      10;
            proxy_read_timeout      10;
            proxy_buffer_size       4k;
            proxy_buffers           4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_25854057/article/details/126751250
Recomendado
Clasificación