【nginx】测试服务器配置内网项目转发

本次配置是在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、配置本机和虚拟机的端口映射

 【nginx】测试服务器配置内网项目转发

 

 

 

在转发的机子上,使用命令确认映射成功:curl "http://admin.site-kq.0752sc.cn/index.php?m=admin&c=public&a=login" -x 192.168.1.234.1:80

 

 

 

上一篇:Openresty+Lua+Redis灰度发布


下一篇:5.nginx字符串(ngx_str_t)