我对 Nginx 完全陌生,只是在玩弄我的域名,我闲置了它但从未使用过。我想我可以好好利用它并在其上托管 API。但我想先学习一些 Nginx。
当我检查错误日志时,出现以下错误:
2020/09/07 10:49:54 [emerg] 32432#32432: bind() to 0.0.0.0:443 failed (98: Address already in use)
当我检查“sudo netstat -tulpn”时:
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 32455/nginx: master
tcp6 0 0 :::443 :::* LISTEN 32455/nginx: master
是 nginx 本身使用了 443 端口吗?
我的配置只是覆盖 sites-availble 中名为“default”的默认 nginx 配置,如下所示:
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl on;
ssl_certificate /home/ubuntu/dotnetdeploy/www_topswagcode_dev.pem;
ssl_certificate_key /home/ubuntu/dotnetdeploy/www_topswagcode_dev.key;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
更改配置后,我运行了:
sudo service nginx restart
当我输入:
nginx -T
然后有很多类型例如:
types { .... }
有人知道这里发生了什么事吗?
答案1
systemctl
您已在运行另一个 nginx 副本。您应该在尝试使用(停止使用service
,因为此功能已弃用,最终将被删除)重新启动 nginx 之前手动将其终止。
答案2
您需要做的就是运行“sudo systemctl disable nginx”,这样每次重新启动硬件时 nginx 就不会启动,在我的情况下是 Raspberry PI。
我遇到了同样的问题,这个解决了它。我有两个实例试图同时使用同一个 433 端口运行,一个来自 Raspberry PI 启动时,另一个来自我的 Docker 容器试图启动映像 nginx_app_1 (jc21/nginx-proxy-manager)。