Nginx virtual host配置

为了 DNSmasq部署DNS WPAD(WEB代理自动发现) 实现 Web代理自动发现(Web Proxy Auto-Discovery,WPAD)协议 ,以为 结合DNSmasq+iptables使用AirPort Express实现无线访问因特网 的无线客户端提供自动代理服务器配置 PAC 配置文件下载,需要部署一个 Nginx部署WPAD服务 。由于 WPAD 协议要求主机名必须是 wpad.<domain> ,所以需要构建一个Virtual Host来实现。

Nginx server blocks

对于Nginx web服务器,对应于Apache web服务器的 virtual host 功能称为 server blocks

案例部署的 virtual host 命名为 wpad.staging.huatai.me ,对应IP地址是 192.168.6.200

  • 创建目录:

    sudo mkdir -p /var/www/wpad/html
    sudo chown -R www-data:www-data /var/www/wpad/html
    

备注

在Ubuntu发行版提供的 nginx 软件包运行时的用户账号是 wwww-data

  • 创建一个验证页面:

Nginx虚拟主机wpad的验证页面
<html>
    <head>
        <title>Welcome to WPAD</title>
    </head>
    <body>
        <h1>Success!  The wpad.staging.huatai.me server block is working!</h1>
    </body>
</html>
  • 创建配置 /etc/nginx/sites-available/wpad 内容如下:

Nginx虚拟主机wpad的配置 /etc/nginx/sites-available/wpad
server {
    listen 80;
    listen [::]:80;
    
    root /var/www/wpad/html;
    index index.html index.htm index.nginx-debian.html;
    
    server_name wapd wpad.staging.huatai.me;
    
    location / {
        try_files $uri $uri/ =404;
    }
}
  • 然后创建软连接激活这个 server blocks

    sudo ln -s /etc/nginx/sites-available/wpad /etc/nginx/sites-enabled/
    
  • 验证配置:

    sudo nginx -t
    
  • 没有问题则重启Nginx:

    sudo systemctl restart nginx
    
  • 然后使用浏览器访问 http://wpad.staging.huatai.me 就能正常看到针对该域名设定的 index.html 页面内容,表明 virtual host 功能生效。

参考