当前位置: 欧洲杯竞猜 > 服务器运维 > 正文

升级及动态添加模块,初手必看之Nginx详细介绍

时间:2020-03-24 03:22来源:服务器运维
系统基于 ubuntu server 14.04.4 amd64 此文对于那一个对Nginx理解什么多的大咖则没供给看下来了,反正你懂的!囧~(*^__^*) 安装 对此Nginx是何许事物自身就背着了,请Google、百度之......那篇作

系统基于ubuntu server 14.04.4 amd64

此文对于那一个对Nginx理解什么多的大咖则没供给看下来了,反正你懂的!囧~(*^__^*)

安装

对此Nginx是何许事物自身就背着了,请Google、百度之......那篇作品是自己花了广大时光,通过看书(什么人写的书本人都不想聊起了,寻找下就有了)、以至凭仗Nginx官方网站和网上海人民广播电视台大腕人的的稿子、参阅个别专门的职业性较强的论坛(像守住兄和几个男人搞起来的linuxtone)最后收拾出来的笔记。鉴于索取和进献的见地,如下分享整个适应于初手参阅的Nginx详细介绍笔记:

第一步 下载并解压Nginx压缩包

从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.org/download/nginx-1.10.1.tar.gz命令直接下载
解压nginx-1.10.1.tar.gz文件:

tar zxvf nginx-1.10.1.tar.gz

1、Nginx介绍

第二步 配置

cd nginx-1.10.1
./configure --prefix=/usr/local/nginx

注意:

① 即使在此以前未有设置C compiler(C 编写翻译器),这一步将报如下错误音信:

xueliang@dev:~/download/nginx-1.10.1$ ./configure –prefix=/usr/local/nginx
checking for OS

  • Linux 4.2.0-27-generic x86_64
    checking for C compiler … not found

./configure: error: C compiler cc is not found

xueliang@dev:~/download/nginx-1.10.1$

可以参见那篇作品安装C compiler,然后继续上面包车型客车操作

② 假如此前未有设置PCRE,这一步将报如下错误音讯:

checking for PCRE library … not found
checking for PCRE library in /usr/local/ … not found
checking for PCRE library in /usr/include/pcre/ … not found
checking for PCRE library in /usr/pkg/ … not found
checking for PCRE library in /opt/local/ … not found

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre= option.

xueliang@dev:~/download/nginx-1.10.1$

能够参照那篇小说设置PCRE,然后继续下边的操作

③ 假使在此之前从没安装zlib,这一步将报如下错误音信:

checking for md5 in system md library … not found
checking for md5 in system md5 library … not found
checking for md5 in system OpenSSL crypto library … not found
checking for sha1 in system md library … not found
checking for sha1 in system OpenSSL crypto library … not found
checking for zlib library … not found

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using –without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using –with-zlib= option.

xueliang@dev:~/download/nginx-1.10.1$

可以参照那篇文章安装zlib,然后继续上边包车型客车操作

也得以跳过此步,施行暗中认可安装,--prefix的暗中同意值为/usr/local/nginx,Nginx官方网站对此有认证:Building nginx from Sources

2、Nginx安装与启用

第三步 编译

make

3、Nginx的宗旨配置与优化

第四步 实现安装

sudo make install

4、Nginx与PHP(法斯特CGI)的设置、配置与优化

平整进级

当须求对正在运作的Nginx实行晋级换代时,能够在不截止Nginx的气象下,使用新本子只怕重编写翻译的可执路程序替换旧版本的可执路程序,这里大家从nginx-1.10.1升级到nginx-1.11.1

************************************************

先是步 备份旧版本

因为Nginx的升官,实质只是用新本子的可实施文件,替换旧版本的可执路程序,所以,对于备份,不仅能够只备份旧版本可执行文件,也得以打包备份整个旧版本安装目录,仿照效法命令分别如下:

只备份旧版本可实践文件

sudo cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

装进备份整个旧版本设置目录

sudo tar -cvf /usr/local/nginx.bak /usr/local/nginx

一、Nginx介绍:

其次步 下载新本子并解压Nginx压缩包

对于新本子Nginx压缩包的下载和平解决压,能够参照本文关于Nginx的设置部分的第一、二步。

Nginx是一款高品质的HTTP和反向代理服务器,能够筛选高效的epoll(linux2.6基本功卡塔尔、kqueue(freebsd卡塔尔、eventport(solaris10卡塔尔作为互连网I/O模型,可以扶植高达50000个并发连接数的响应,而内部存款和储蓄器、CPU等系统资源消耗却相当的低、运转特别稳固。

其三步 使用旧版本陈设参数,配置并编写翻译新本子Nginx

因为只是对Nginx实行进步,并不关乎配置参数的改良,所以,大家平常采纳和旧版本平等的安插(当然你也足以采用全新的计划新闻卡塔尔国,来编写翻译新本子的Nginx,使用如下命令查看旧版本布署音信:

/usr/local/nginx/sbin/nginx -V

能够赢得结果如下:

xueliang@dev:~/download/nginx-1.11.1$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.1
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configure arguments: –prefix=/usr/local/nginx
xueliang@dev:~/download/nginx-1.11.1$

其中 [configure arguments: –prefix=/usr/local/nginx] 这一行即为旧版本Nginx配置音信,这里能够见到,旧版本只是钦定了设置路线,使用[configure arguments:]前边的参数消息,对新本子Nginx作一样配置,然后开展编写翻译:

./configure --prefix=/usr/local/nginx

2010年一月:Nginx市集占有量为3354329、分占的额数为1.九成

第四步 编写翻译新本子Nginx可执路程序

make

1、选择Nginx的理由
1.1 扶持高产出连接
因而top命令能够查看系统负荷和CPU使用率
出于apache选择的是select网络I/O模型,管理大批量老是的读写很没用
1.2 内部存款和储蓄器消耗少
在服务器3W并发连接下,开启千克个Nginx进度消耗150MB内部存款和储蓄器(15MB*10State of Qatar,开启七十几个php-cgi进度消耗128MB内部存款和储蓄器(20MB*64卡塔尔国,共费用不到2GB内部存款和储蓄器,可以应用webbench做压力测量试验,运行依然非常的慢。
1.3 费用低廉
选购F5 BIG-IP、NetScaler等负荷均衡交流机要求几十万毛子任,而开源Nginx代替这几个商业设施。
1.4 其余理由
互联网安排轻易,相比较apache就清楚了
支撑rewrite重写法规,能够依照域名、U奥迪Q5L的例外、将HTTP乞求分到分裂的后端服务器群组
放到的健检作用
节省带宽,支持GZIP压缩,能够增进浏览器本地缓存的Header头
支撑热安顿,可以在不间断服务的动静下、对软件版本实行升级

第五步 用新本子Nginx可执路程序覆盖旧版本可执路程序

在上一步的底蕴上,执行一下命令就可以:

sudo cp objs/nginx /usr/local/nginx/sbin/nginx

实施那条命令,大概会报以下非常,提醒文件被私吞:

xueliang@dev:~/download/nginx-1.11.1$ sudo cp objs/nginx /usr/local/nginx/sbin/nginx
cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy
xueliang@dev:~/download/nginx-1.11.1$

能够选用以下命令举办强制覆盖:

sudo cp -rfp objs/nginx /usr/local/nginx/sbin/nginx

敲定:Nginx在反向代理、rewrite法则、牢固性、静态文件管理、内部存储器消耗等方面都显现出很强的优势。

第六步 运维新本子Nginx主进度

出殡 US奇骏2时域信号给旧版本主进程号:

kill -USR2 旧版本的Nginx主进程号

旧版本Nginx主进度选择到-USR2信号,将重命名它的.pid文件为.oldpid,然后执行新本子的Nginx可执路程序,依次运行新本子的主进度和做事经过:

PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx
33134 33126 nobody 0.0 1368 kqread nginx: worker process (nginx)
33135 33126 nobody 0.0 1380 kqread nginx: worker process (nginx)
33136 33126 nobody 0.0 1368 kqread nginx: worker process (nginx)
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

二、Nginx安装与启用
Nginx服务器的安装与铺排
http://www.nginx.net/
最新稳固版nginx-1.0.0 

第七步 从容关闭旧版本的干活历程

那时候,新、旧版本的Nginx实例会同期运维,合营处理供给,若是此刻给旧版本主进度发送WINCH 随机信号,旧版本主进度将会给它的做事历程发送音讯,供给它们从容关闭,今后,旧版本的行事进度始起慢慢退出:

PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx
33135 33126 nobody 0.0 1380 kqread nginx: worker process is shutting down (nginx)
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

从容关闭旧版本的职业进度命令:

kill -WINCH 旧版本的Nginx主进程号

先是linux系统得设置有GCC编写翻译器,再者还也许有autoconf和automake工具用于机动创造功用完备的makefile,因为Nginx也是用这一工具生成makefile的。
用yum命令安装GCC和autoconf和automake工具:
yum install gcc gcc-c autoconf automake -y

第八步 从容关闭旧版本的主进程,达成Nginx的晋级换代

因此一段时间后,旧的办事进度(work process)处理完了装有已三番两次的乞请后退出,仅由新本子的干活经过来拍卖新的央浼了:

PID PPID USER %CPU VSZ WCHAN COMMAND
33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

有道是专一的是,那个时候,旧版本的主进度还没关闭它监听的套接字,倘若有需求,你还能还原旧版本做事进度。如若是因为一些原因,新本子的可实施文件运市场价格况不可以,下边有三种方案可供参谋:

  • 给旧版本主进程发送 HUP 功率信号。旧版本主进度就要不重复读取配置音讯的景况下,重新开启工作历程。然后,通过给新版本主进度发送 QUIT 功率信号,全数新本子的经过将会从容关闭。
  • 给新版本主进度发送 TERM 数字信号。然后,他将会给它的劳作经过发送新闻,须要它们立刻退出,紧接着,这么些干活儿历程就能立即退出。(若是因为一些原因,新本子进度未有退出,应该给新版本主进度发送 KILL 时域信号,强制新版本主进度退出。)新版本主进度退出的还要,旧版本主进程将会活动运维它的行事进程。
    新版本主进度退出后,旧版本主过程将会移除名字以.oldpid 结尾的文书,苏醒为它的 .pid 文件。
    假若进级成功,应该给旧版本主进度发送 QUIT 时限信号,使其退出,只保留新本子进度:
PID PPID USER %CPU VSZ WCHAN COMMAND
36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

Nginx的一些模块要求任何第三方库的补助,比方gzip模块需求zlib库、rewrite模块需求pcre库 、ssl效能供给openssl库等。同样能够使用Yum安装这一个模块正视的库:
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel
(当然最佳使用新型版本源码包安装,像系统ISO文件里头自带的pcre库就相对旧些卡塔尔

加多模块

刚接触Nginx时,只明白Nginx的效用是分模块的,并不精通有个别模块私下认可是不参与到创设中去的,譬喻ngx_http_ssl_module模块,是用来支撑https协商的,暗中认可景况下是从未有过营造到Nginx中的。

随着业务不停扩张,假如急需Nginx援助少数模块,而这一个模块暗许不在Nginx的营造安顿中,塑造Nginx时,又从不点名插手这么些模块,该怎么做呢?是不是能够给业已运转的Nginx动态增长这个模块呢?答案是肯定的!

给运营中的Nginx动态增进模块的方案,与地方提到的平缓进级Nginx的方案很周边。上边大家来看一下哪些给运行中的Nginx增添 ngx_http_ssl_module模块。

1、安装Nginx
1.1 安装Nginx所急需的pcre库、才得以协助rewrite
  tar zxvf pcre-8.02.tar.gz
  cd pcre-8.02
  ./configure
  make && make install
1.2 安装Nginx
  tar zxvf nginx-1.0.0.tar.gz
  cd nginx-1.0.0
  ./configure --prefix=/usr/local/nginx --with-http_ssl_module
  make && make install
--->
Configuration summary
  using system PCRE library
  using system OpenSSL library
  md5: using OpenSSL library
  using system zlib library

首先步 查看运维中的Nginx版本,并下载、解压对应版本的压缩包

查看Nginx版本:

/usr/local/nginx/sbin/nginx -v

结果:

xueliang@dev:~$ /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.11.1
xueliang@dev:~$

或者:

/usr/local/nginx/sbin/nginx -V

结果:

xueliang@dev:~$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.11.1
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configure arguments: –prefix=/usr/local/nginx
xueliang@dev:~$

此间能够看出,正在运维的Nginx版本为1.11.1,参照安装Nginx部分,下载并解压对应版本的Nginx

2、启动Nginx
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
翻开进程:
# ps -ef |grep  nginx
root     11659     1  0 14:13 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody   11660 11659  0 14:13 ?        00:00:00 nginx: worker process
查看端口号:            
# netstat -antup |grep nginx
tcp     0    0 0.0.0.0:80      0.0.0.0:*    LISTEN      11659/nginx.conf
从地点能够见见Nginx启用叁个主进度和一个子历程,大家能够匡正nginx.conf里头的
worker_processes使得运转多少个子进程。

其次步 编译Nginx,同有时间步向供给模块配置

参照平滑进级的第三步,查看运营中的Nginx的配置参数,并在最后追加-with-http_ssl_module

如:原配置新闻为 --prefix=/usr/local/nginx,则新计划消息为 --prefix=/usr/local/nginx --with_http_ssl_module,配置Nginx试行的通令如下:

./configure --prefix=/usr/local/nginx --with_http_ssl_module

3、停止Nginx
当Nginx服务运行起来后,就能够在原来空目录/usr/local/nginx/logs/下自动生成3个文件:
access.log  error.log  nginx.pid
此处带有nginx的主进程号:nginx.pid ,大家得以经过如上的ps命令查看、也足以直接cat出来
3.1 从容甘休Nginx
kill -QUIT Nginx主进度号
# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
3.2 赶快停止Nginx
kill -TERM Nginx主进程号
# kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

其三步 平滑重启Nginx,实现动态模块增加

这一步能够参照平滑晋级的第四至八步

4、重启Nginx
设若改进了Nginx的主配置文件,想重启Nginx,能够先检查Nginx的安插文件是不是正确后才发送系统时限信号给Nginx主进度的办法张开,检查格局如下:
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
独有现身如上OK新闻才会加载新的计划文件。
4.1 平滑重启Nginx
kill -HUP Nginx主进度号
# kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
借使Nginx自身都还未有启动,平滑重启可是会报错的。

5、Nginx的时域信号调控
TERM,INT  快捷关闭
QUIT       从容关闭
HUP        平滑重启
USGL4501       重新展开日志文件、在切割日志时用场大
USPRADO2       平滑进级可执路程序
WINCH      从容关闭工作经过

图片 1

编辑:服务器运维 本文来源:升级及动态添加模块,初手必看之Nginx详细介绍

关键词: 欧洲杯竞猜