Nginx
Nginx特点
- 高性能
- 反向代理
- 负载均衡
- 健康检查功能
- 外围支持好:文档全,二次开发和模块较多
- 支持热部署:可以不停机重载配置文件
结构
- 核心模块
- 基本模块
- 第三方模块
功能
- 处理器模块
- 过滤器模块
- 代理类模块
note:模块直接编译在nginx中,属于静态编译模式,启动nginx后,模块会自动加载
编译安装
- 获取源码包
wget https://nginx.org/download/nginx-1.12.2.tar.gz - 安装pcre以便支持正则表达式
yum install pcre-devel - 安装make,gcc
yum -y install gcc automake autoconf libtool makeyum install gcc gcc-c++ - 安装zlib
wget http://www.zlib.net/zlib-1.2.11.tar.gz - 解压安装包
tar zxvf nginx-1.12.2.tar.gz - 进入
/nginx-1.12.2依次执行./configure,make,make install - 安装完成
安装中遇到的问题
Nginx: error while loading shared libraries: libpcre.so.1
解决办法:首先确认安装了pcre,未安装请先安装yum install pcre-devel
其次cd /lib ls *pcre*
显示结果是:
libpcre.so.0 libpcre.so.0.0.1
最后添加软连接:
ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1
解决问题
-bash: nginx: command not found
解决办法:
- 使用./nginx运行
-
使用配置文件解决
- 在/etc/sysconfig目录下创建一个文本文件,内容如下 NGINX_CONF_FILE=/usr/local/nginx/conf/nginx.conf
- 在/etc/bashrc中追加nginx命令的绝对路径,内容如下
export PATH=$PATH:/usr/local/nginx/sbin然后使用source /etc/bashrc生效即可解决问题
note:运行nginx,/usr/local/nginx/sbin/nginx运行时只需要运行一次,没有任何返回结果则表示正常运行,千万不要再运行一次nginx,否则会报如下错误 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
80端口被占用时 解决办法: vi /usr/local/nginx/conf/nginx.conf找到80将该端口修改为其他端口
或者使用
fuser -k 80/tcp 杀死后再启动nginx