本次配置是在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