访问本地网络中的 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;
}
}

}

我的/etc/hosts 文件包含:

127.0.0.1    localhost localhost.localdomain site1.dev
192.168.1.11 site1.dev

这适用于本地主机,但我无法从同一网络中连接的手机或平板电脑访问 site1.dev。它仅适用于IP地址192.168.1.11 有没有办法让它使用site1.dev名称工作?

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

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

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

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

如果您正在开发某些网站或某些后端来进行测试,则可以将server_name site1.dev 替换为IP地址,否则需要配置DNS

我只是试一试,它会像:

server_name 192.168.1.11;

而且您不需要将 is 放在主机文件中。

最新更新