nginx小技巧-动态域名

栏目: 服务器 · Nginx · 发布时间: 6年前

内容简介:如果公司有微信开发需求的话,得有备案了的域名和80端口员工开发调试是个问题,如果每次都找运维修改,维护,会被K的。交换机设置DMZ到一台固定服务器,在上面部署nginx/openresty

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

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

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

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

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

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

server {
    listen 443 http2 ssl;
    listen 80;
    server_name  ~(?<h>.+)_(?<a>\d+)_(?<b>\d+).domain.com;
    location / {
        //proxy settings ...
        proxy_pass http://192.168.$a.$b;
    }
}
复制代码

使用方法

curl http[s]://abc_1_1.domain.com
复制代码

等于

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

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

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

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

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java EE WEB开发与项目实战

Java EE WEB开发与项目实战

李俊青 / 华中科技大学出版社 / 2011-11 / 59.80元

本书采用工程案例的形式,将日常Java EE项目开发所涉及的技术要点进行了解析,系统介绍了Apache的安装、Tomcat的安装、虚拟主机的配置、开发工具的搭配使用、验证码的使用、过滤器的使用、密码的加密与解密、JavaMail邮件发送、Web在线编辑器的使用、文件上传、数据库连接池、Ajax与Servlet的身份认证、Struts框架的应用、JSF框架的应用、Spring框架的应用、Hibern......一起来看看 《Java EE WEB开发与项目实战》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具