Nginx环境搭建与使用
一、背景
之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用nignx来取代原来的tomcat的http server功能,做这个替换的原因是nignx轻量级,抗并发,处理静态文件好。
nignx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,django等),tomcat更多用来做一个应用容器,让java web app泡在里面的东西。
严格意义上来讲,nignx应该叫做http server,而tomcat是一个application server是一个servlet/jso应用的容器。
客户端通过http server(nignx)访问服务器上存储的资源(html文件,图片文件等),http server(nignx)只是把服务器上的文件通过http协议传输给客户端。
应用服务器(tomcat)往往是运行在http server(nignx)的背后,执行应用,将动态的内容转化为静态的内容之后,通过http server(nignx)分发到客户端。
请求的流转过程概图:
注意:nginx只是把请求做了分发,不做处理!!!
二、nginx环境搭建
1、下载
2、解压
# tar -xzf nginx-1.16.1.tar.gz
3、安装依赖的基础组件
因为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
4、进入安装包目录、编译安装
# ./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
5、查看nginx版本
# nginx -v
显示版本号,说明安装成功
三、使用
1、配置文件
nginx的配置文件默认为nginx.conf,我这里通过新建了一个conf.d文件夹和.conf文件(.conf文件具体的内容参考nginx.conf)来完成配置,具体如下:
upstream模块要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器
-
-- max_fails:表示失败最大次数,超过失败最大次数暂停服务
-
-- fail_timeout:表示如果请求受理失败,暂停指定的时间之后重新发起请求
2、nginx的启动
直接输入nginx命令,即可启动
# nginx
还可以通过systemctl来启动nginx
# systemctl start nginx
3、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会等待工作进程将请求结束以后再停止。
4、nginx的配置文件重载
nginx的配置文件重载,这也是一个很重要的功能,因为很多时候需要修改nginx的配置文件,修改完成后需要重新加载配置文件,方法有2个
1. nginx -s reload
2. kill -s hup nginx_pid命令
推荐阅读
-
Nginx环境搭建与使用
-
mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境 - 菩提树下的杨过
-
Mac超快速搭建Nginx、PHP、PHPStorm、XDebug环境
-
wnmp(windows+nginx+mysql+php)环境搭建和配置,wnmpnginx_PHP教程
-
FastDFS - Linux下搭建FastDFS 文件服务器与Nginx配置(部署和运维)
-
使用maven+eclipse搭建struts2开发环境
-
安卓简述与环境搭建
-
Centos搭建Python+Nginx+Tornado+Mysql环境
-
简单安装与使用虚拟环境virtualenv
-
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程,_PHP教程