配置如下:
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