Nginx接收Http协议请求转发使用Https协议的问题

 更新时间:2023年06月14日 08:32:15   作者:BLF2  
这篇文章主要介绍了Nginx接收Http协议请求转发使用Https协议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

缘起

公司使用阿里的apigateway,规定不太友好,同是SIT环境,A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同A系统可能只有1套,B系统可能有8套,这样的话,可能会随时切换调用B系统的环境,管理员不允许,于是想着用Nginx做下转发。因为A系统调用B系统是内部调用,不计划使用HTTPS,因为还要去申请证书,但是B系统调用入口必须使用HTTPS,这样就要求Nginx可以接收HTTP协议的请求,转发出去的协议是HTTPS。

第一次配置Nginx

server {
        listen       10000;
        server_name  192.168.1.2;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location / {
            proxy_pass https://aaa.bbb.com:9000;
        }
    }

以为这样就可以直接转发了,但是执行nginx -t直接报错:

nginx: [emerg] https protocol requires SSL support in /data/nginx/conf/nginx.conf:224
nginx: configuration file /data/nginx/conf/nginx.conf test failed

224行就是我上面的proxy_pass https://aaa.bbb.com:9000;这一行
搜了一下说是nginx当时编译的时候没有http_ssl_module模块,使用nginx -V查看一下当时编译的参数:

nginx version: nginx/1.21.5
built by gcc 4.8.5 (SUSE Linux) 
configure arguments: --prefix=/data/nginx --with-pcre=/data/software/pcre-8.21 --with-zlib=/data/software/zlib-1.2.11 --with-openssl=/etc/ssl

果然没有http_ssl_module模块,于是决定重新编译一下nginx。

重新编译Nginx

注意:我的输出是/data/nginx,和当前正在跑的Nginx是同一个目录,先使用nginx -s stop停止nginx,然后备份conf/nginx.conf文件,防止被覆盖。

先安装依赖:pcre-8.21,zlib-1.2.11,openssl-1.0.2t
我都是下载的源码,然后编译并安装的

# pcre-8.21 使用以下命令
cd pcre-8.21 && ./configure && make && make install
# zlib-1.2.11 使用以下命令
cd zlib-1.2.11 && ./configure && make && make install
# openssl-1.0.2t 比较特殊 使用
cd openssl-1.0.2t && ./config && make && make install

进入Nginx源码目录然后使用以下命令configure:

./configure --prefix=/data/nginx --with-pcre=/data/software/pcre-8.21 --with-zlib=/data/software/zlib-1.2.11 --with-openssl=/data/software/openssl-1.0.2t --with-http_ssl_module

然后执行编译和安装:

make && make install

重启Nginx

编译完成后发现之前的Nginx二进制文件变成了nginx.old,新的Nginx文件叫nginx,给这个nginx二进制加执行权限,然后执行

nginx -t

此时不再报错,提示成功:

nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful

然后查看conf/nginx.conf,发现没有被覆盖,可以直接启动Nginx了:

nginx -c /data/nginx/conf/nginx.conf

启动完成后用ps命令查看以下进程果然在。
然后使用postman测试,发现可以正确转发,大功告成。

到此这篇关于Nginx接收Http协议请求转发使用Https协议的文章就介绍到这了,更多相关Nginx接收Http协议请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    这篇文章主要介绍了18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Nginx为Tomcat服务器作反向代理的配置教程

    Nginx为Tomcat服务器作反向代理的配置教程

    这篇文章主要介绍了Nginx为Tomcat服务器作反向代理的配置教程,文中以Windows系统为环境来演示驱动JSP程序的示例,需要的朋友可以参考下
    2016-03-03
  • Nginx的yum安装-Centos7过程

    Nginx的yum安装-Centos7过程

    本文详细介绍了如何在Linux系统上安装和配置Nginx服务器,包括安装yum工具包、创建Nginx yum源仓库、安装Nginx、启动Nginx、开启80端口以及相关命令总结
    2024-12-12
  • Nginx安装配置的实现示例

    Nginx安装配置的实现示例

    本文主要介绍了Nginx安装配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 如何在centos7中安装nginx

    如何在centos7中安装nginx

    近期做项目用到了nginx,所以自己动手来在Centos7上安装nginx,以下是安装步骤。
    2018-09-09
  • Nginx配置方向代理及目录白名单配置教程

    Nginx配置方向代理及目录白名单配置教程

    文章介绍了Nginx反向代理的配置方法,包括基本配置、events配置、http配置、server配置和location配置,通过配置location块,可以实现不同的请求路径转发到不同的后端服务器,此外,还介绍了目录白名单的配置方法,可以根据请求的目录路径来决定是否转发
    2026-02-02
  • Nginx超时时间的配置说明

    Nginx超时时间的配置说明

    Nginx超时时间非常重要,因为它将直接影响网站的响应速度和用户体验,本文主要介绍了Nginx超时时间的配置说明,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 详解Nginx proxy_pass的一个/斜杠引发的血案

    详解Nginx proxy_pass的一个/斜杠引发的血案

    这篇文章主要介绍了详解Nginx proxy_pass的一个/斜杠引发的血案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Nginx一键安装部署静态网页的过程详解

    Nginx一键安装部署静态网页的过程详解

    这篇文章主要介绍了Nginx一键安装部署静态网页,主要介绍nginx安装和部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-06-06
  • Nginx代理缓存静态资源的实现方法

    Nginx代理缓存静态资源的实现方法

    本文主要介绍了Nginx代理缓存静态资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08

最新评论