无法在WSL中启动nginx

ctzwtxfj  于 2023-05-28  发布在  Nginx
关注(0)|答案(1)|浏览(239)

我使用的是Windows和WSL的开发环境,Docker和nginx直接安装在我的WSL机器上来处理代理反向,但现在当我试图启动nginx时,我得到了错误“98:Unknown error”并使用命令“sudo nginx -t”,它显示“bind()to 0.0.0.0:80 failed”和“0.0.0.0:443 failed”,我该怎么做才能修复这个问题?

vfh0ocws

vfh0ocws1#

问题

ubuntu wsl预装了apache web服务器,它使用默认的web端口(80),所以当你尝试用默认设置(也是在端口80上)启动nginx时,它会有bind错误
当然,端口80已被使用的原因有很多,您需要检查哪个应用程序正在使用它

如何查看

选项一:

  • 打开ubuntu(linux)终端
  • 型号sudo systemctl status apache2
  • 如果您看到一些消息,告诉它的运行,那么它使用端口80,如果没有,那么它的其他东西

选项二:

  • 打开浏览器并在地址栏中键入localhost
  • 如果它显示默认的apache安装页面,那么它确实是罪魁祸首

解决方案

这个解决方案是当apache2是罪魁祸首时,对于任何其他可能使用端口80的应用程序,您需要找到如何禁用它

  • 使用sudo systemctl stop apache2停止
  • 你也需要禁用它,这样下次你重新启动你的电脑时,它就不会自动启动了,输入sudo systemctl disable apache2
  • 在此之后,您可以尝试重新启动nginx:sudo systemctl start nginx
  • 并使其自动启动:sudo systemctl enable nginx

当然,你可以改变nginx使用的端口,比如use other port on nginx

如果您决定更改nginx端口,请注意,任何监听其他应用使用的端口的主机都会导致nginx无法启动,所以如果您在nginx配置中有多个主机,您也需要更新它们

相关问题