【Bug/环境配置】Nginx配置问题

1 本地安装

问题1
如何查看nginx运行过程中的日志
解决
在nginx.conf中最外层级添加error_log logs/error.log info;,info是日志记录级别。注意要提前在指定位置创建好设置的日志文件,否则会报错:
nginx: [emerg] open() "/usr/local/Cellar/nginx/1.23.2/logs/error.log" failed (2: No such file or directory)


问题2
使用brew services start nginx后nginx并没有启动
解决
首先使用lsof -i:[port]先查看是否启动,或者端口是否被应用占用。

之后可以直接使用nginx命令查看报错是什么,比如我遇到的几个错误:

  1. nginx: [emerg] "server" directive is not allowed here in /usr/local/etc/nginx/nginx.conf:1
    这个是我的nginx.conf配置文件的内容格式不正确
  2. nginx: [alert] kill(70725, 1) failed (1: Operation not permitted)
    执行reload权限不够,使用sudo或者root用户来执行
  3. nginx: [emerg] getgrnam("root") failed in /usr/local/etc/nginx/nginx.conf:10
    在nginx.conf中的最外层添加的配置user root;不正确,不指明用户group情况下默认和用户名一致,一般这样是错误的。可以使用id [username]查看下group名,对于root可以使用admin,即user root admin;

问题3

Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.

解决
在linux和macOS下想把nginx部署在小于1024端口需要root权限,可以使用sudo -i切换到root用户来运行。如果只使用sudo修饰我遇到了上面问题2中的第四个问题


问题4
在hosts文件中设置了域名,在浏览器打开后还是用DNS请求到别处
解决

  1. 关闭VPN代理,因为浏览器对代理会优先于hosts处理
  2. chrome浏览器可以尝试进入chrome://net-internals清理DNS缓存

问题5
如何查看homebrew安装后的nginx目录在哪
解决
对所有通过homebrew安装的软件都可以使用brew info [name]来查看安装信息,一般都会写明


2 Docker安装

问题1
运行后通过docker logs nginx发现报错[error] 24#24: *7 recv() failed (104: Connection reset by peer) while proxying and reading from upstream ...
解决
配置文件中设置的转发结点没有响应,去查看结点是否成功启动


问题2
nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
解决
容器启动时没有找到配置文件。一般是在创建容器时-v挂载了目录,这样创建要保证宿主机挂载目录下已经有了对应的配置文件(通常先随便创建一个nginx容器拷贝配置文件进去修改)。
还要注意的是,拷贝的时候有可能是直接把nginx拷贝到指定的宿主机目录下,比如-v /a:/b,是指把容器/b目录下面的文件挂载到宿主机/a下面,不包含a和b目录本身,所以配置文件的路径一定要对应好

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值