欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx 配置https 并解决重定向后https协议变成了http的问题

程序员文章站 2022-06-21 21:12:57
...

配置如下:

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