nginx 配置https 并解决重定向后https协议变成了http的问题
配置如下:
server {
listen 80;
server_name localhost;
return 301 https://localhost$request_uri;
charset UTF-8;
location / {
root html; # 这个是指定一个项目所在目录
index index.html index.htm; # 这个是指定首页的文件名
}
}
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name localhost;
ssl_certificate buduhuisi.crt; # 这个是证书的crt文件所在目录
ssl_certificate_key buduhuisi.key; # 这个是证书key文件所在目录
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /esgcc-oms {
proxy_pass http://localhost:8080;
proxy_redirect http:// https://;
add_header Cache-Control no-store;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root html; # 这个是指定一个项目所在目录
index index.html index.htm; # 这个是指定首页的文件名
}
}
proxy_redirect http:// https:// 这个配置是解决重定向后https变成了http 的问题。
应用中配置:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
<property name="redirectHttp10Compatible" value="false" /> <!--重定向解决https 变成了http 的问题-->
</bean>
可以解决这个问题:
400 Bad Request: The plain HTTP request was sent to HTTPS port