1、背景前端
以前测试的项目先后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,作这个替换的缘由是Nignx轻量级,抗并发,处理静态文件好。java
Nignx经常使用作静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来作一个应用容器,让java web app泡在里面的东西。nginx
严格意义上来说,Nignx应该叫作HTTP Server,而tomcat是一个Application Server是一个Servlet/JSO应用的容器。c++
客户端经过HTTP Server(Nignx)访问服务器上存储的资源(HTML文件,图片文件等),HTTP Server(Nignx)只是把服务器上的文件经过HTTP协议传输给客户端。web
应用服务器(tomcat)每每是运行在HTTP Server(Nignx)的背后,执行应用,将动态的内容转化为静态的内容以后,经过HTTP Server(Nignx)分发到客户端。后端
请求的流转过程概图:tomcat
注意:nginx只是把请求作了分发,不作处理!!!服务器
2、Nginx环境搭建并发
一、下载app
二、解压
# tar -xzf nginx-1.16.1.tar.gz
三、安装依赖的基础组件
由于nginx默认会依赖一些基础组件,这些依赖组件主要有g++,gcc, openssl-devel, pcre-devel和zlib-devel,因此在正式安装nginx前最好先安装好这些组件。可使用yum一次性安装,运行如下命令:
# yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
四、进入安装包目录、编译安装
# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 # make # make install
五、查看nginx版本
# nginx -v
显示版本号,说明安装成功
3、使用
一、配置文件
Nginx的配置文件默认为nginx.conf,我这里经过新建了一个conf.d文件夹和.conf文件(.conf文件具体的内容参考nginx.conf)来完成配置,具体以下:
upstream模块要负责负载均衡的配置,经过默认的轮询调度方式来分发请求到后端服务器
-- max_fails:表示失败最大次数,超过失败最大次数暂停服务
-- fail_timeout:表示若是请求受理失败,暂停指定的时间以后从新发起请求
二、Nginx的启动
直接输入nginx命令,便可启动
# nginx
还能够经过systemctl来启动nginx
# systemctl start nginx
三、Nginx的中止
nginx的中止有两种方式,分别是 1. nginx -s stop命令 2. kill -9 nginx_pid命令 # nginx_pid指的是主进程的pid号
同理,也能够经过systemctl来中止nginx
# systemctl stop nginx
须要说明的是,使用systemctl命令结束nginx进程时,只有经过systemctl启动的nginx才能被正常结束,而经过运行nginx命令启动的进程是不能被正常结束的。
使用kill命令来结束nginx进程。结束nginx进程的信号有两个,分别是TERM和QUIT:
# kill -s QUIT nginx_pid
# kill -s TERM nginx_pid
前者(QUIT)用于快速中止nginx,后者(TERM)用于平缓中止nginx,区别在于平缓中止nginx会等待工做进程将请求结束之后再中止。
四、Nginx的配置文件重载
nginx的配置文件重载,这也是一个很重要的功能,由于不少时候须要修改nginx的配置文件,修改完成后须要从新加载配置文件,方法有2个
1. nginx -s reload 2. kill -s HUP nginx_pid命令