Nginx

Nginx特点

  • 高性能
  • 反向代理
  • 负载均衡
  • 健康检查功能
  • 外围支持好:文档全,二次开发和模块较多
  • 支持热部署:可以不停机重载配置文件

结构

  • 核心模块
  • 基本模块
  • 第三方模块

功能

  • 处理器模块
  • 过滤器模块
  • 代理类模块

note:模块直接编译在nginx中,属于静态编译模式,启动nginx后,模块会自动加载

编译安装

  1. 获取源码包 wget https://nginx.org/download/nginx-1.12.2.tar.gz
  2. 安装pcre以便支持正则表达式yum install pcre-devel
  3. 安装make,gcc yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++
  4. 安装zlib wget http://www.zlib.net/zlib-1.2.11.tar.gz
  5. 解压安装包tar zxvf nginx-1.12.2.tar.gz
  6. 进入/nginx-1.12.2依次执行./configuremakemake install
  7. 安装完成

安装中遇到的问题

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

解决办法:
  1. 使用./nginx运行
  2. 使用配置文件解决

    • 在/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