当前位置:首页 > 服务端 > 用nginx实现https请求转http请求(转)

用nginx实现https请求转http请求(转)

2022年11月09日 17:02:49服务端8

转自:https://www.cnblogs.com/magotzis/p/9456695.html

 

接到项目需求需要将一些https请求利用nginx代理到http接口上,因此要在本地上搭环境进行测试,现在将该过程记录一下。

生成证书

1. 使用openssl生成密钥privkey.pem:

openssl genrsa -out privkey.pem 1024/2038

2. 使用密钥生成证书server.pem:

openssl req -new -x509 -key privkey.pem -out server.pem -days 365

证书信息可以随便填或者留空,只有Common Name要根据你的域名填写。如xxx.com,或使用*.xxx.com匹配二级域名。

配置ngnix

由于我本地的Spring boot项目是跑在8080端口的,因此在ngnix配置上我还做了一层80到8080端口到转换。

完整ngnix配置如下。

用nginx实现https请求转http请求(转) _ JavaClub全栈架构师技术笔记
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server { 
        listen       80;    
        server_name  a.com;
        location / {
            proxy_pass http://localhost:8080;
        }
    }


    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  a.com;
    #证书位置
        ssl_certificate      /data/server.pem; # 路径为证书生成的路径
        ssl_certificate_key  /data/privkey.pem; # 路径为证书生成的路径

    #    ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        #协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;         
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

        # 转发到http
        location / {
           proxy_pass http://a.com;
        }
    }
    include servers/*;
}
    
用nginx实现https请求转http请求(转) _ JavaClub全栈架构师技术笔记

其中a.com是我在本地hosts文件上做的一个本地映射(127.0.0.1 a.com)

验证配置

重启ngnix验证配置是否成功

sudo nginx -t && sudo nginx -s reload

之前是在网上看到该命令,但实际中在我本地该命令并未生效。如果该命令不生效就先把nginx关闭后再重启。

nginx -s stop
nginx

一点小坑

配置完成之后在访问同一个https请求时总是会在奇数次(第一次,第三次……)报404,偶数次才成功。后面经过排查发现,在已经配置了80转换到8080端口时还做了对8080端口的一些配置,如下图。将该配置删除后即可。

用nginx实现https请求转http请求(转) _ JavaClub全栈架构师技术笔记

作者:粒子先生
来源链接:https://www.cnblogs.com/libin2015/p/12050714.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68938.html

标签: HTTPNginx
分享给朋友:

“用nginx实现https请求转http请求(转)” 的相关文章

计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

目录 一、计算机网络 通信协议 网络模型 二、TCP/IP...

SpringBoot 拦截器获取http请求参数

SpringBoot 拦截器获取http请求参数

SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 目录 SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 获取http请求参数是一种刚需 定义拦截器获取请求...

okhttp Fatal Exception thrown on Scheduler.Worker thread问题解决

我在项目里面同时使用了以下两个类库: compile 'com.squareup.okhttp3:logging-interceptor:3.3.1' compile 'com.squareup.okhttp3:okhttp:3.5.0' 编译时没有错误,但是一调用...

SpringBoot系列——启用https

SpringBoot系列——启用https

  前言   有时候我们需要使用https安全协议,本文记录在SpringBoot项目启用https     生成证书   自签名证书   使用java jdk自带的生成SSL证书的工具keytool生成自己的证书   1、打开cmd...

docker安装nginx和修改配置方法

docker安装nginx和修改配置方法

一,安装nginx 1.查看nginx版本 docker search nginx 2.拉取nginx docker pull nginx:stable-perl 3.查看容器 docker images...

docker安装配置nginx

docker安装配置nginx

https://hub.docker.com/search?q=nginx&type=image 一、查看docker是否安装nginx docker images 二、安装nginx docker pull nginx...

【SpringBoot】SpringBoot整合Nginx的全部流程

【SpringBoot】SpringBoot整合Nginx的全部流程

                             SpringBoot整合Nginx的全部流程 对Nginx还不了解...

IDEA:http://fls.jetbrains-agent.com-- No response

起因: win10电脑关机,打开,自动更新了系统。 (误删除vmoptions的-javaagent 绿色 jar包,也会出现↓。。。) [ 2022年1月14日改vmoptions这玩意又替换的别人后而忘了加 -javaagent:D:\idea\je...

HTTP协议-Cookie和Session详解

HTTP协议-Cookie和Session详解

前言: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的跟踪技术就是Cookie和Session。 Cookie通过在客户端记录信息确定用户身份,Session通过在服务器记录确定用户身份。 本章将系统的讲述Cookie和Sessio...

SpringMVC优雅的获取HttpSevletRequest及HttpServletResponse简录

通常情况下,SpringMVC可以通过入参的方式绑定HttpServletRequest和HttpServletReponse(SpringMVC在调用处理器时会自动创建对应的HttpServletRequest和HttpServletReponse对象...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。