主机无法访问来宾计算机上的nginx虚拟主机

时间:2017-06-07 13:28:04

标签: windows nginx vagrant virtual-machine virtualbox

问题:如何创建简单的nginx配置,将文件夹结构读取为域(test.local,myblog.local)并显示该文件夹中的页面,包括PHP?

信息: Windows 10 x64构建
Vagrant 1.9.5
VirtualBox 5.0.22(最新)
客户操作系统:Ubuntu Xenial x64最新

所以,我想创建简单的nginx配置,它将重新创建文件夹结构。看到 关于pastebin的my config file

这里还有一个Vagrantfile配置,它使用SMB来挂载文件夹。

文件夹的结构:

├───devhost.local
│   ├───log
│   └───public
│           index.html
│           index.php
│
└───test.local
    ├───log
    └───public
            index.html

devhost的文件和文件夹的权限:

ubuntu@ubuntu-xenial:~$ ls -la /var/www/html/devhost.local/
total 4
drwxr-xr-x 2 ubuntu www-data    0 Jun  7 11:17 .
drwxr-xr-x 2 ubuntu www-data 4096 Jun  7 12:44 ..
drwxr-xr-x 2 ubuntu www-data    0 Jun  7 11:17 log
drwxr-xr-x 2 ubuntu www-data    0 Jun  6 14:13 public

我在Windows中的主机文件:

192.168.33.10   devhost.local

所以,当我在我的sites-enabled文件夹中有默认配置时,我可以通过192.168.33.10打开来宾机,我看到nginx的html页面,但是当我删除这个默认配置并启用我的通配符配置时(看到链接我的配置文件)所以我无法访问我的域名。 sudo nginx -t表示一切正常,我也尝试重启我的客机,重新加载/重启nginx服务。此外,我禁用Windows 10防火墙(我不知道它是否完全禁用,但说它已禁用)。此外,日志文件为空,甚至未创建,包括访问日志和错误日志。

我的错误在哪里?如果需要更多信息,请问我,我会给。

非常感谢!

2 个答案:

答案 0 :(得分:0)

在nginx设置之后应该有所帮助。

server {
  listen 80 default_server;
  root /var/www/html/$host;
  index index.html index.php;
  location ~ \.php {
    # ... fastcgi details
  }
}

答案 1 :(得分:0)

我找到了解决方案。

首先,当我只保留一个配置文件时,我的nginx不会侦听端口80,我检查sudo netstat -ntlp | grep LISTEN但是没有端口80.所以我谷歌,并在stackoverflow上找到了另一个问题(请参阅链接at结束)。

解决方案:使用config重新创建我的文件的simlink,之后当我运行sudo nginx -t时,我看到了一些错误。所以它似乎在此文件之前是空的或类似的东西,但我没有注意到这一点,因为我直接在sites-available文件夹中编辑文件。

感谢大家!

这个问题可以帮助我解决问题:nginx not listening to port 80