nginx小技巧-动态域名

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

内容简介:如果公司有微信开发需求的话,得有备案了的域名和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).


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

查看所有标签

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

PHP 5完全攻略

PHP 5完全攻略

杜江 / 2010-5 / 79.00元

《PHP 5完全攻略(畅销书升级版)》是目前第一本真正介绍PHP 5及MySQL 5新增语法与功能的中文版本权威宝典!《PHP 5完全攻略(畅销书升级版)》本着精、全、要三宗旨,从理论中延伸,从实践中深入,翔实并完善地描述了PHP 5的开发特性与MySQL 5数据库。《PHP 5完全攻略(畅销书升级版)》分为两大部分,第1部分主要阐述PHP开发的基础知识,如PHP数组与表单处理、PHP 5面向对象......一起来看看 《PHP 5完全攻略》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具