3

我是 WSL2 的新手,但到目前为止它工作得非常好。我有一个简单的 HTML 页面,我想使用 Nginx 提供服务,但我希望它可以通过主机上的 Web 浏览器访问。默认的 nginx 网页有效(!),所以我开始模仿默认的 nginx html 页面(/var/www/html/index.html)。

我创建了:
/var/www/test.dev/index.html
/etc/nginx/sites-available/test.dev(站点启用/中的+符号链接)

Nginx 配置:

server {
    listen 9000;
    listen [::]:9000;

    server_name test.dev;

    root /var/www/test.dev;
    index index.html;

    location / {
            try_files $uri $uri/ =404;
    }
}

因此,与默认配置的唯一大区别是端口 9000。

我重新加载/重新启动了 nginx,并尝试卷曲我的配置:

$ curl https://localhost

$ curl https://localhost:9000

两个请求都成功了

但现在我想用网络浏览器访问我的 Windows 主机上的页面。第一个(默认)有效,我可以看到默认的 Nginx HTML 页面。第二个不起作用:无法访问站点

所以我的问题是:
1. 为什么会这样?我是否必须对 Windows 防火墙设置进行一些更改?
2. 我喜欢有一个像 example.com 这样的虚拟主机名而不是 localhost:9000
我已经编辑了 /etc/hosts... 它适用于 curl 但又不在主机浏览器中

4

1 回答 1

7

在您的 nginx 配置中,您有:

  listen 9000;
  server_name test.dev;

所以你的域应该被解析为: http ://test.dev:9000

但你也应该添加test.dev到你的 Windowshosts文件中 %windir%\system32\drivers\etc\hosts

127.0.0.1 test.dev
于 2020-06-16T04:37:24.727 回答