【发布时间】:2020-06-07 07:11:22
【问题描述】:
编辑:首先阅读:
除了接受的答案之外,这些错误是在 没有 systemd 的情况下启动 nginx 时发生的。杀死nginx:ps -ax | grep nginx→找到nginx master pid→kill ###;运行 nginx with systemd: systemctl start nginx.
如果不使用 systemctl 启动 nginx,systemctl stop nginx 似乎不起作用(至少在我的服务器上);因此,systemctl restart nginx 在第二次尝试启动 nginx 时会出现此错误。
关于我的设置:
我使用的是 Debian 10,Buster,有一个实时服务器。两个域名我都测试过了,都是用这些配置文件自己广播的,但是两个配置文件都激活的时候就不会广播了。
我要完成的工作:
如何使用 nginx 在一个 ip 地址上设置两个网站?
错误信息:
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/example.com:22 第 2 行。
nginx: [emerg] a duplicate default server for 0.0.0.0:443 in /etc/nginx/sites-enabled/example.com:22 第 2 行。default_server 用于端口 443。
nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/example.com:23 第 3 行。default_server 在一个文件中尝试为 http2,并使用端口 443。
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/example.com:23 第 3 行。default_server 在一个文件中尝试为 http2。
nginx: [emerg] invalid parameter "example.com" in /etc/nginx/sites-enabled/example.com:23 第 3 行:default_server 尝试为 example.com
配置文件(cmets 剥离):
其中有两个文件(代码如下所示)。我的配置文件与下面的代码块完全相同,只有一个区别:在两个文件中,example.com 是我拥有的真实、唯一的域名。
我的配置文件位于/etc/nginx/sites-available,它们被符号链接到/etc/nginx/sites-enabled。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/example.com; #example.com is different in both files.
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com; #example.com is different in both files.
location / {
try_files $uri $uri/ =404;
}
}
主要失调:
Another stack question 表示要重写这些行或将其中的一行注释掉。重写要么无法解决错误,要么导致文件未公开提供的情况(example.com 无处可去)。
总结:
这个问题似乎是关于第 2 行、第 3 行或第 2 行和第 3 行的。
基本上,所有主要的操作指南要么明确告诉读者使用上面的代码-要么-他们没有提及这些行。
【问题讨论】:
-
您想在同一个端口 80 上运行您的两个应用程序吗?
标签: nginx nginx-config