Nginx介绍

Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购。

Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。(摘自维基百科)

安装环境

  • Centos 7.3
  • Nginx 1.18 stable

    Nginx安装

    下载安装包

    1
    wget 'http://nginx.org/download/nginx-1.18.0.tar.gz'

    安装依赖包

    1
    yum install -y gcc gcc-c++ pcre pcre-devel libxml2 libxml2-dev libxslt-devel zlib zlib-devel gd-devel openssl openssl-devel geoip-devel

解压安装包

1
tar -zxvf nginx-1.18.0.tar.gz

编译

1
2
3
4
5
6
./configure --prefix=/usr/local/nginx --with-pcre-jit \
--with-http_stub_status_module --with-http_auth_request_module \
--with-http_addition_module --with-http_geoip_module \
--with-http_gunzip_module --with-http_gzip_static_module \
--with-http_image_filter_module --with-http_sub_module \
--with-http_xslt_module --with-http_ssl_module --with-http_v2_module

编译参数说明

  • prefix=/usr/local/nginx //配置编译后的安装目录
  • with-pcre-jit //编译PCRE包含“just-in-time compilation”
  • with-http_stub_status_module //获取nginx自上次启动以来的状态
  • with-http_auth_request_module //实现基于一个子请求的结果的客户端授权。如果该子请求返回的2xx响应代码,所述接入是允许的。如果它返回401或403中,访问被拒绝与相应的错误代码。由子请求返回的任何其他响应代码被认为是一个错误。
  • with-http_addition_module //作为一个输出过滤器,支持不完全缓冲,分部分响应请求
  • with-http_geoip_module //使用预编译的MaxMind数据库解析客户端IP地址,得到变量值
  • with-http_gunzip_module //它为不支持“gzip”编码方法的客户端解压具有“Content-Encoding: gzip”头的响应。
  • with-http_gzip_static_module //在线实时压缩输出数据流
  • with-http_image_filter_module //传输JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd库要用到)
  • with-http_sub_module //允许用一些其他文本替换nginx响应中的一些文本
  • with-http_xslt_module //过滤转换XML请求
  • with-http_ssl_module //ssl模块
  • with-http_v2_module // HTTP V2模块

    安装

    1
    make -j4 && make install

    安装优化

    添加环境变量

    1
    2
    3
    4
    5
    vim /etc/profile

    export PATH=$PATH:/usr/local/nginx/sbin/

    source /etc/profile

检查Nginx配置文件

1
nginx -t

启动Nginx

1
nginx -s start

停止Nginx

1
nginx -s stop

添加至系统服务

1
vim /usr/lib/systemd/system/nginx.service

1
2
3
4
5
6
7
8
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
[Install]
WantedBy=multi-user.target

启动Nginx

1
systemctl start nginx

查看Nginx运行状态

1
systemctl status nginx

重启Nginx

1
systemctl restart nginx