小李的便利店

悠优酸幽

反向代理服务器 Nginx

Nginx 简介

Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务 器,同时还 是一个电子邮件服务器。

Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第 二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。

国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。

Nginx 的特点

  • 高并发
  • 低消耗
  • 热部署
  • 高扩展
  • 高可用

nginx 的 web 请求处理机制

Nginx 结合多进程机制和异步机制对外提供服务,异步机制使用的是异步非阻塞方式。 Nginx 的 master 进程会生成多个 worker 进程,master 进程负责管理这些 worker 进程的生命 周期、接受外部命令、解析 perl 脚本等。而 worker 进程则用于接收和处理客户端请求。

每个 worker 进程能够使用异步非阻塞方式处理多个客户端请求。当某个 worker 进程接 收到客户端的请求以后,其会调用 IO 进行处理,如果不能立即得到结果,worker 进程就去 处理其他的请求。当 IO 返回结果后,就会通知 worker 进程,而 worker 进程得到通知后, 就会挂起当前正在处理的事务,拿 IO 返回结果去响应客户端请求。worker 进程采用的是 epoll 事件驱动模型与 IO 进行通信的。epoll 模型底层采用的是“回调 callback”替代了轮询,使 效率要高于 select 模型。

Nginx 的下载与安装

1、Nginx 的下载

nginx 的官网为: http://nginx.org

2、 Nginx 的源码安装

(1) 克隆并配置主机

克隆一个没有安装其它软件的纯净主机。完成以下配置:

  • 修改主机名
  • 修改网络配置

(2) 安装 Nginx

A、上传 Nginx

将下载好的 Nginx 上传到新复制的主机的/usr/local/nginx 目录。

B、 安装 gcc

yum -y install gcc gcc-c++

C、 安装依赖库

yum -y install pcre-devel openssl-devel

D、 解压 Nginx

将 Nginx 解压到 /usr/local/nginx 目录中

tar -zxvf nginx-1.12.2.tar.gz
《反向代理服务器 Nginx》

其中各个目录中存放的文件作用为:

  • auto:存放 Nginx 自动安装的相关文件
  • conf:存放 Nginx 服务器配置文件
  • configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成
  • contrib:存放由其他机构贡献的文档材料
  • html:存放 Nginx 欢迎页面
  • man:manual,手册,存放 Nginx 帮助文档
  • src:存放 Nginx 源码

E、 生成 makefile

下面是简单配置的命令执行。命令中每一行的最后添加了反斜杠\表示当前命令并未结 束,回车不会执行该命令。执行成功后,会给出配置报告。下面以安装对 https 访问协议支 持的模块 http_ssl_module 为例。

《反向代理服务器 Nginx》

F、编译安装

make && make install

(3) 使 nginx 命令随处可用

《反向代理服务器 Nginx》

修改/etc/profile 文件

在/etc/profile 文件最后添加以下内容,将安装目录下的 sbin 目录添加到 PATH 系统环境 变量中。

《反向代理服务器 Nginx》

然后再重新加载该文件即可。

source /etc/profile

Nginx 命令

(1) 启动命令

《反向代理服务器 Nginx》

(2) 停止命令 nginx –s stop/quit

在 nginx 命令后通过-s 选项,可以指定不同的信号完成不同的功能。

  • nginx –s stop:强制停止 Nginx,无论当前工作进程是否正在处理工作。
  • nginx –s quit:优雅停止 Nginx,使当前的工作进程完成当前工作后停止。
《反向代理服务器 Nginx》

(3) 平滑重启命令 nginx –s reload

在不重启 Nginx 的前提下重新加载 Nginx 配置文件,称为平滑重启。

(4) 测试配置文件命令 nginx -tq

nginx –t:测试配置文件是否正确,默认只测试默认的配置文件 conf/nginx.conf。

nginx –T:测试配置文件是否正确,并显示配置文件内容。

nginx –tq:在配置文件测试过程中,禁止显示非错误信息,即只显示错误信息。

浏览器访问

《反向代理服务器 Nginx》

点赞

发表评论

电子邮件地址不会被公开。