通过nginx反向代理来调试代码的实现

通过nginx反向代理来调试代码的实现,第1张

通过nginx反向代理来调试代码的实现

本文重点是详细介绍如何根据nginx反向代理调整编码的完成度。原文中,根据实例的编码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

情况

现在所有新企业项目的开发设计都是前端和后端分离的。在某些情况下,因为一些新的需求或者bug的变化,如果前端开发需要马上连接我的本地开发工具进行调整,但是我没有前端的代码,那么马上换个主机,把后端开发和测试环境的域名跳转到我的本地IP就很简单了。就HTTP协议的服务来说,很随便保证,但是企业的测试环境都在HTTPS上,而我的本地服务是HTTP协议,所以即使换了主机,要求也会因为协议不同而不成功,所以需要升级本地服务到HTTPS。

计划

其实springboot本身就应用了HTTPS(howto-configure-ssl),但是要更改新的项目代码,这并不优雅。所以我想马上用nginx反向代理到本地服务,这样在nginx做HTTPS的时候就不用改代码了,只需要改主机把后端开发和测试环境网站的域名偏向nginx服务的IP,就可以应用到其他的HTTP服务开发和设计调整上。

审核并签署资质证书

首先要为nginx的ssl提供生成一套资格证书,使用openssl专用工具立即生成一套根证书和匹配的服务资格证书。

根证书生成

#生成一个RSA私钥 opensslgenrsa-outroot.key2048 #根据私钥生成一个根证书 opensslreq-sha256-new-x509-days365-keyroot.key-outroot.crt\ -subj"/C=CN/ST=GD/L=SZ/O=lee/OU=work/CN=fakerRoot"

服务器资格证书生成

#生成一个RSA私钥 opensslgenrsa-outserver.key2048 #生成一个带SAN拓展的证书签名要求文档 opensslreq-new\ -sha256\ -keyserver.key\ -subj"/C=CN/ST=GD/L=SZ/O=lee/OU=work/CN=xxx.com"\ -reqextsSAN\ -config<(cat/etc/pki/tls/openssl.cnf\ <(printf"[SAN]\nsubjectAltName=DNS:*.xxx.com,DNS:*.test.xxx.com"))\ -outserver.csr #应用以前生成的根证书做审签 opensslca-inserver.csr\ -mdsha256\ -keyfileroot.key\ -certroot.crt\ -extensionsSAN\ -config<(cat/etc/pki/tls/openssl.cnf\ <(printf"[SAN]\nsubjectAltName=DNS:xxx.com,DNS:*.test.xxx.com"))\ -outserver.crt

这样,就获得了三个重要的文件:

  • Root.crt:根证书
  • Server.key:服务资格证书的私钥
  • Server.crt:服务资格证书
  • 注:生成的服务器资格证书网站域名要适用测试环境浏览的网站域名,不然电脑浏览器会提醒资格证书不安全。

    nginx配备了

    为了更方便,docker立即启动了一个nginx容器进行浏览,并将资格证书和环境变量初始化到匹配的文件目录中:

    nginx.conf

    server{ listen443ssl; server_name_; ssl_certificate"/usr/local/nginx/ssl/server.pem"; ssl_certificate_key"/usr/local/nginx/ssl/server.key"; location/{ proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; proxy_set_headerX-Forwarded-Proto$scheme; proxy_set_headerHost$http_host; proxy_set_headerX-NginX-Proxytrue; proxy_set_headerUpgrade$http_upgrade; proxy_set_headerConnection"upgrade"; proxy_passhttp://127.0.0.1:3000; proxy_redirectoff; proxy_http_version1.1; } }

    根据配备ssl_certificate和ssl_certificate_key的特定服务器的资格证书和私钥,proxy_pass特定开发工具的浏览详细地址。

    启动

    dockerrun-d--namehttps-p443:443-v~/forword/ssl:/usr/local/nginx/ssl-v~/forword/config/nginx.conf:/etc/nginx/conf.d/default.confnginx

    将nginx设备和资质证书相关的文档初始化到匹配的文件目录下,暴露端口号443,这样服务启动后就可以根据https浏览到本地的开发工具。

    安装根证书

    因为服务资格证书是自签名的,不会被电脑浏览器信任,所以必须在电脑 *** 作系统中安装根证书。

    打开chrome电脑浏览器->;设置->:高级->:管理方法资格证书

    受信任的根证书被授予组织-->:Guide

    只需选择之前生成的根证书root.crt并导入即可。

    更改主机

    需要调整时,只需启动本地服务,然后将主机中待检测的域名转移到nginx服务器的IP上,就可以将前端开发需求共享给开发工具。根据电脑浏览器地址栏的小锁标记,可以看到资质证书,已经成功部署了认证服务。

    其实文中已经提到了两种解决方案,其实还有其他的解决方案,比如使用fidder等中间人攻击的方法,这里就不赘述了。

    文章里的内容就这些了。期待对大家的学习和培训有所帮助,也期待大家的应用。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/774675.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存