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

时间:2017-07-21 15:18:24

标签: nginx dns

我想从同一网络中连接的手机或平板电脑访问我的开发工作站(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

这适用于localhost,但我无法通过同一网络中连接的手机或平板电脑访问site1.dev。它仅使用IP地址192.168.1.11 是否有某种方法可以使用 site1.dev 名称使其工作?

2 个答案:

答案 0 :(得分:1)

仅当您从开发工作站开发工作站/etc/hosts文件>。如果您通过移动设备访问网络,开发工作站/etc/hosts将被忽略。

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

当您的路由器支持本地DNS功能时,其他可能性是使用您的路由器

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

答案 1 :(得分:0)

如果您正在开发某个网站或后端进行测试,则只需用IP地址替换server_name site1.dev,否则您需要配置DNS

我只是尝试一下,就像:

server_name 192.168.1.11;

,您无需将其放在hosts文件中。