本文汇集了最近在使用nginx反向代理过程中遇到的一系列错误及其解决办法。
1缺乏支持项导致nginx配置错误
在利用sudo ./configure --with-http_ssl_module --with-http_stub_status_module
进行配置时,往往会遇到以下类型的错误
error: the HTTP rewrite module requires the PCRE library.
这是因为缺乏相关的支持项。比如上述问题,就需要安装PCRE。
2支持项安装失败错误
安装配置nginx,需要安装支持项,但是随着ubuntu版本的不同,要用不同的方式安装支持项。
方式一
sudo apt-get install gcc zlib zlib-devel pcre-devel openssl openssl-devel
方式二
我的Ubuntu版本是 18.04.5 LTS,如果按照上面的方式按照,会出现以下报错:
E: Unable to locate package pcre-devel
E: Unable to locate package openssl-dev
E: Unable to locate package zlib
最终选取以下方式按照:
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install libpcre3-dev
sudo apt install zlib1g
sudo apt install zlib1g-dev
sudo apt-get install libpcre3-dev
sudo apt-get install libssl-dev
3 nginx: [error] invalid PID number in “nginx.pid“
sudo nginx -s reload的时候出现以上的错误可能的原因:nginx.conf 可能不在 /etc/nginx/ 下,因此要设定nginx.conf的具体位置以完成配置
当然,当有nginx.conf的配置发送改变时,运行nginx -s quit等命令,也会出现这样的问题。
sudo nginx -c /yourpath/nginx.conf
sudo nginx -s reload
4 nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)
运行下面的命令时
sudo ./nginx -c /path/nginx/conf/nginx.conf
出现错误:
原因很显然,端口占用
因此:
sudo lsof -i :8080
然后根据出现的PID,
利用sudo kill -9 PID
关闭被占用的端口,解决。
5 nginx: [error] open()"/usr/local/nginx/logs/nginx.pid" failed
原因同错误2的情况1
解决办法:
sudo nginx -c /yourpath/nginx.conf
sudo nginx -s reload