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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM