访问本地网络中的NGINX虚拟主机

Iva*_*van 6 dns nginx

我想从连接在同一网络中的手机或平板电脑访问我的开发工作站 (Arch Linux) 上的虚拟主机。

我的 nginx.conf 虚拟主机规范如下所示:

http{

include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;
client_max_body_size 16M;

# Domain site1.dev
server {
    server_name site1.dev;
    listen 80;
    root /path/to/dir;

    location / {
        root /path/to/dir;
        index index.php;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /path/to/dir/$fastcgi_script_name;
        include fastcgi_params;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我的 /etc/hosts 文件包含:

127.0.0.1    localhost localhost.localdomain site1.dev
192.168.1.11 site1.dev
Run Code Online (Sandbox Code Playgroud)

这适用于本地主机,但我无法从连接在同一网络中的手机或平板电脑访问 site1.dev。它只能使用 IP 地址 192.168.1.11 有什么方法可以让它使用site1.dev名称工作吗?

uzs*_*olt 6

仅当您从开发工作站/etc/hosts打开浏览器(或想要访问网络)时,才会读取您的开发工作站的文件。如果您从移动设备访问网络,则开发工作站/etc/hosts被忽略。

192.168.2.11如果您也想通过site1.dev手机或平板电脑进行访问,您应该/etc/hosts在每个设备上创建一个 - 条目(与您的工作站上相同)。

另一种可能性是当您的路由器支持本地 DNS 功能时使用您的路由器。

或者一个复杂的解决方案(一个非常丑陋的黑客)是在您的工作站上安装一个 DNS 服务器,并将路由器的 DNS 设置为您工作站的 IP。