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

  

  

现在公司项目都是前后端分离的方式开发,有些时候由于某些新需求开发或者错误修改,想要让前端直接连到我本地开发环境进行调试,而前端代码我并没有,只能通过前端部署的测试环境进行测试,最简单的办法就是直接改主机把后端测试环境的域名指向我本地的IP,这对于HTTP协议的服务来说是很轻易做到的,不过公司的测试环境全部上了HTTPS,而我本地的服务是HTTP协议这样就算是改了主机也会由于协议不同导致请求失败,所以需要将本地的服务升级成HTTPS才行。

  

  

其实springboot本身就支持HTTPS (howto-configure-ssl),但是这需要改项目代码不太优雅,于是就想直接用<代码> nginx> nginx> 后端测试环境域名> nginx 服务的IP即可,而且可以适用于其它的HTTP服务开发调试。

  

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

  

  

首先要生成一套证书用于nginx的ssl配置,直接使用<代码> openssl> 根证书> 服务证书>   

根证书生成

        #生成一个RSA私钥   openssl genrsa两根。关键的2048   #通过私钥生成一个根证书   openssl点播-sha256 - x509天365关键根。关键的两根。crt \   主题“/C=CN/ST=GD/L=SZ/O=lee/OU=work/CN=fakerRoot”      

服务器证书生成

        #生成一个RSA私钥   openssl genrsa两级服务器。关键的2048   #生成一个带圣扩展的证书签名请求文件   openssl点播- \   -sha256 \   关键服务器。关键\   主题“=CN/ST=GD/L=SZ/O=lee/OU=work/CN=xxx.com/C \”   -reqexts圣\   配置& lt;(猫/etc/pki/tls/openssl.cnf \   & lt; (printf“(三)\ nsubjectAltName=DNS: .xxx.com * DNS: * .test.xxx.com”)) \   两级server.csr   #使用之前生成的根证书做签发   openssl ca——服务器。csr \   md sha256 \   密钥文件根。关键\   cert根。crt \   扩展圣\   配置& lt;(猫/etc/pki/tls/openssl.cnf \   & lt; (printf“(三)\ nsubjectAltName=DNS: xxx.com, DNS: * .test.xxx.com”)) \   两级server.crt      

这样就得到了三个关键文件:

  
      <李> <代码> root>   <李> <代码> server.key>   <李> <代码> server.crt>   
  
注:生成的服务器证书域名要支持测试环境访问的域名,否则浏览器会提示证书不安全。   

  

为了方便,直接使用<代码>码头工人启动了一个nginx容器进行访问,并将证书和配置文件挂载到对应的目录:

  

nginx.conf         服务器{   听443 ssl;   server_name _;   ssl_certificate“/usr/地方/nginx/ssl/server.pem”;   ssl_certificate_key“/usr/地方/nginx/ssl/server.key”;   位置/{   proxy_set_header X-Real-IP remote_addr美元;   proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;   proxy_set_header X-Forwarded-Proto美元计划;   proxy_set_header主机http_host美元;   proxy_set_header X-NginX-Proxy正确;   proxy_set_header升级http_upgrade美元;   proxy_set_header连接“升级”;   proxy_pass http://127.0.0.1:3000;   proxy_redirect;   proxy_http_version 1.1;   }   }      

通过配置<代码> ssl_certificate 和<代码> ssl_certificate_key> proxy_pass>   

启动         码头工人运行- d——名称https - p 443:443 - v ~/丰华/ssl:/usr/地方/nginx/ssl - v ~/丰华/config/nginx.conf:/etc/nginx/conf.d/违约。参看nginx      

将nginx配置和证书相关文件挂载至对应的目录,并暴露443端口,这样服务启动后即可通过https访问到本地开发环境了。

  

  

由于服务证书是自己签发的,并不会被浏览器所信任,所以需要将<代码>根证书>   

打开铬浏览器→设置→高级→管理证书
  

  

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

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