本次配置是在DIND_DNS已经配置好的基础上进行:
1、配置一个通配域名服务
/datas/soft/openresty/nginx/conf/vhost/proxy.conf
server {
listen 80;
server_name *.lanse1993.com;
index index.html index.php;
root /datas/www;
set $passaddr 'http://$remote_addr'; # 访问的电脑IP,假如是192.168.1.234
set $passhost '$host';
rewrite_by_lua_file '/datas/soft/openresty/nginx/conf/waf/proxy.lua'; # 解析域名,IP转发
location / {
proxy_pass $passaddr;
proxy_set_header Host $passhost;
}
access_log /datas/logs/nginx/access_proxy.log tpynormal;
error_log /datas/logs/nginx/error_proxy.log;
}
2、lua解析域名,指定IP
local env = string.match(ngx.var.host, '%l+%-');
if( env == "test-" ) # 比如域名: admin.test-xkjd.lanse1993.com
then
ngx.var.passaddr = "http://xx.xx.xx.xx"
elseif( env == nil ) # 比如域名: xkjd.lanse1993.com
then
ngx.var.passaddr = "http://xx.xx.xx.xx"
end
-- ngx.log(ngx.ERR, ngx.var.host, ngx.var.passaddr, env); # 这里的日志,会输出到error_proxy.log
3、配置本机和虚拟机的端口映射
在转发的机子上,使用命令确认映射成功:curl "http://admin.site-kq.0752sc.cn/index.php?m=admin&c=public&a=login" -x 192.168.1.234.1:80