当前位置:   article > 正文

nginx小技巧-动态域名(微信,小程序80端口)

nginx使用80端口配置小程序域名

如果公司有微信开发需求的话,得有备案了的域名和80端口

员工开发调试是个问题,如果每次都找运维修改,维护,会被K的。

交换机设置DMZ到一台固定服务器,在上面部署nginx/openresty

可以gitlab(svn)+jenkins/ansible等运维方式实现每次修改配置文件后,提交到gitlab触发CI/CD推送到nginx服务器,执行reload

当然变通的也有,比如,openresty+lua订阅redis,发现变更后,读取redis的配置,rewrite到本地配置文件然后reload,但是总归是比较笨重的

下面说的是通过server_name设置通配符来实现动态域名的方案

  1. server {
  2. listen 443 http2 ssl;
  3. listen 80;
  4. server_name ~(?<h>.+)_(?<a>\d+)_(?<b>\d+).domain.com;
  5. location / {
  6. //proxy settings ...
  7. //$h 是abc_1_1中的abc
  8. //proxy_set_header Host $h;
  9. proxy_pass http://192.168.$a.$b;
  10. }
  11. }
  12. 复制代码

使用方法

开发者机器上安装nginx,并且配置相应的vhost

  1. server {
  2. listen 80;
  3. server_name abc*;
  4. location / {
  5. root html;
  6. index index.html;
  7. }
  8. }
  9. 复制代码
  1. curl http[s]://abc_1_1.domain.com
  2. 复制代码

等于

  1. curl -H"abc_1_1.domain.com" http[s]://192.168.1.1
  2. 复制代码

为啥用_分隔,而不是用.分隔成多级域名,是因为Let's Encrypt的通配符是同级通配符,比如*.domain.com只支持a.domian.com这种,a.b.domain.com是无效的,如果不需要https访问(小程序需要https)的话,则可以自行修改成.分隔

注意,此方案会存在一定的安全隐患,比如,ip爆破(可以设置白名单访问,basic auth,限制动态ip范围).

好处是维护简单(新增域名,更改域名->ip映射,修改配置,采集数据,打印日志等)

本文只是其中反向代理中的一种,类似的反代方案还有frp和ngrok,还可以用dns(bind,dnsmasq).

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/147694
推荐阅读
相关标签
  

闽ICP备14008679号