我读过一些针对几乎完全相同的问题的其他答案,但它们似乎没有解决我的问题(其中一些是由于环境不同等造成的)。
我正在 DO 上设置一个新的 ubuntu 服务器。我在该服务器上创建了一个文件 /etc/nginx/sites-available/3.conf。此文件中只有此代码(我也尝试了其余代码行,但结果相同)。
server {
listen 80
listen [::]:80;
server_name 3.hotelbobbygg.xyz;
}
然而,当我像这样测试它时,
root@2:~# nginx -t -c /etc/nginx/sites-available/3.conf
它出现以下错误:
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/3.conf:1
nginx: configuration file /etc/nginx/sites-available/3.conf test failed
如果我删除该文件中的所有内容,它仍然会出现此错误:
syntax is ok
nginx: [emerg] no "events" section in configuration
nginx: configuration file /etc/nginx/sites-available/3.conf test failed
如果我给出这个:nginx -t
那么它tests ok
它只是一个新的 droplet,除了更新操作系统和在/var/www/
我没有触碰任何其他文件。
请以服务器新手的身份并尝试学习基本功能的人的语言来回答(我已经在 ubuntu 上成功建立了一个讨论网站,现在想要在同一个 droplet/服务器上建立另一个网站)。
答案1
您使用了错误的标志。来自文档
-c filename 指定 NGINX 应该使用哪个配置文件来代替默认文件
所以当你跑步的时候
nginx -t -c /etc/nginx/sites-available/3.conf
你告诉服务器使用 3.conf反而主配置。这当然会出错,因为服务器块需要封闭。并且可用站点文件包含在主配置文件中。当你运行
nginx -t
没关系,因为该命令会验证所有配置文件,包括你的可用站点。没有理由使用 -c 标志运行它,除非您正在测试全新的主配置