400 Solicitud incorrecta: la solicitud HTTP simple se envió al puerto HTTPS
1. Introducción a los antecedentes
A través Nginx
del servicio de backend proxy, Nginx
solo se monitorea el puerto HTTPS, y al ingresar a otras interfaces a través de la interfaz abierta por primera vez, se cambia al HTTP
protocolo y no se puede abrir. Después de cambiar HTTPS
a, 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 HTTPS
acuerdo.
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 https
convertirse después de la redirección http
. proxy_redirect
La 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;
}
}