Nginx基本配置及使用

什么是 Nginx

Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支撑 5 万并发链接,并且 cpu、内存等资源消耗非常低,运行非常稳定。

nginx 应用场景:

  1. http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
  2. 虚拟主机。可以是现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
  3. 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机二某台服务器闲置的情况。

Linux 下安装 nginx

准备 nginx

  • 下载:
    # wget http://nginx.org/download/nginx-1.8.1.tar.gz
  • 解压:
    # tar -zxvf nginx-1.8.1.tar.gz
  • 进入目录:
    # cd nginx-1.8.1

配置 nginx

  • 常用编译选项说明:
    nginx 大部分常用模块,编译时 ./configure -- help--without 开头的都默认安装。

    • --prefix=PATH:指定 nginx 的安装目录。默认 /usr/local/nginx
    • --conf-path=PATH:设置 nginx.conf 配置文件的路径。nginx 允许通过命令行中的 -c 选项,使用不同的配置文件启动。默认为 /prefix/conf/nginx.conf
    • --usr=name:设置 nginx 工作进程的用户。安装完成后,可以随时在 nginx.conf 配置文件更改 user 指令。默认的用户名是 nobody。--group=name 类似
    • --with-pcre:设置 PCRE 库的源码路径,如果以通过 yum 方式安装,使用 --with-pcre 自动找到库文件。使用 --with-pcre=PATH 时,需要从 PCRE 网站下载 pcre 库的源码并解压,剩下的就交给 Nginx 的 ./configuremake 来完成。perl 正则表达式使用在 location 指令和 --ngx_http_rewrite_module 模块中
    • --with-zlib=PATH:指定 zlib 的源码解压目录。在默认就启动的网络传输解压模块 ngx-http_gzip_module 时需要使用 zlib。
    • --with-http_gzip_static_module: 启动 --with-http_gzip_static_module 支持。在线实时压缩输出数据流
    • --with-http_ssl_module:使用 https 协议模块。默认情况下,该模块没有被构建。前提是 openssl 与 openssl-devel 已安装
    • --with-http_stub_status_module:用来监控 nginx 的当前状态,获取 nginx 自上次启动以来的工作状态
    • --with-http_realip_module:通过这个模块允许我们改变客户端请求头中客户端 IP 地址值(例如 X-Real-IP 或 X-Forwarded-For),意义在于能够使得后台服务器记录原始客户端的 IP 地址
    • --add-module=PATH:通过第三方外部模块,如 nginx-sticky-module-ng 或缓存模块。每次添加新的模块都要重新编译(Tengine 可以在新加入 module 时无需重新编译)
    • --lock-path=/var/lock/nginx.lock:安装文件锁定,防止安装文件被别人利用,或自己误操作
    • --with-http_flv_module:启动 --with-http_flv_module 支持。提供寻求内存使用基于事件的偏移量文件
    • --http-client-body-temp-path=/var/tmp/nginx/client/:设定 http 客户端请求临时文件路径
    • --http-proxy-temp-path=/var/tmp/nginx/proxy/:设定 http 代理临时文件路径
    • --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/:设定 http fastcgi 临时文件路径
    • --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi:设定 http uwsgi 临时文件路径
    • --http-scgi-temp-path=/var/tmp/nginx/scgi:设定 http scgi 临时文件路径
  • Nginx 基本配置方案:
    # ./configure --prefix=/usr/src/nginx --with-http_stub_status_module --with-http_ssl_module

  • 也可使用 configure 命令创建一 makeFile 文件进行配置

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

执行后可以看到 MakeFile 文件

MakeFile 是一种配置文件,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 shell 脚本一样,其中也可以执行操作系统的命令。

编译安装

# make && make install

nginx 启动与访问

注意:使用的是基本配置方案

  • 进入安装目录:
    # cd /usr/src/nginx/sbin

  • 查看 nginx 版本:
    # ./nginx -v

  • 启动 nginx :
    # ./nginx

  • 启动后查看进程:
    ps aux|grep nginx

  • 设置开机启动:

    • 编辑 /etc/rc.local# vim /etc/rc.local
    • 添加一行:/usr/src/nginx/sbin/nginx,之后,开机会自动启动 nginx
  • 停止 nginx:
    # ./nginx -s stop

  • 重启 nginx:
    # ./nginx -s reopen

  • 重新载入配置文件:
    # ./nginx -s reload

你可能感兴趣的:(Nginx基本配置及使用)