我想从连接在同一网络中的手机或平板电脑访问我的开发工作站 (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名称工作吗?
仅当您从开发工作站/etc/hosts打开浏览器(或想要访问网络)时,才会读取您的开发工作站的文件。如果您从移动设备访问网络,则开发工作站将/etc/hosts被忽略。
192.168.2.11如果您也想通过site1.dev手机或平板电脑进行访问,您应该/etc/hosts在每个设备上创建一个 - 条目(与您的工作站上相同)。
另一种可能性是当您的路由器支持本地 DNS 功能时使用您的路由器。
或者一个复杂的解决方案(一个非常丑陋的黑客)是在您的工作站上安装一个 DNS 服务器,并将路由器的 DNS 设置为您工作站的 IP。