Linux下安装配备nginx

下载Nginx,Nginx官网,^,),第一次安装nginx,一、Linux下安装配置nginx

澳门京葡网站 2

首先步 查看运转中的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

二、Nginx安装与启用
Nginx服务器的设置与安插
http://www.nginx.net/
流行牢固版nginx-1.0.0 

#}

首先步 下载并解压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

Nginx的有的模块须求其余第三方库的支撑,比如gzip模块需求zlib库、rewrite模块须求pcre库
、ssl功用要求openssl库等。相通可以使用Yum安装这一个模块信任的库:
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel
(当然最棒使用新型版本源码包安装,像系统ISO文件里头自带的pcre库就相对旧些卡塔尔(قطر‎

[root@vw010001135067 nginx]# cd /usr/local/nginx

[root@vw010001135067 nginx]# nginx -c conf/nginx.conf

第一步 备份旧版本

因为Nginx的晋升,实质只是用新本子的可实行文件,替换旧版本的可执路程序,所以,对于备份,既可以够只备份旧版本可实施文件,也得以打包备份整个旧版本安装目录,参照他事他说加以考查命令分别如下:

只备份旧版本可试行文件

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

装进备份整个旧版本安装目录

sudo tar -cvf /usr/local/nginx.bak /usr/local/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本身都尚未运行,平滑重启然而会报错的。

proxy_set_header Host $host;

其次步 编写翻译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

1、选择Nginx的理由
1.1 支持高产出连接
透过top命令能够查阅系统负荷和CPU使用率
鉴于apache选取的是select互联网I/O模型,管理大批量三回九转的读写很没用
1.2 内部存款和储蓄器消耗少
在服务器3W并发连接下,开启十三个Nginx进度消耗150MB内部存款和储蓄器(15MB*10State of Qatar,开启61个php-cgi进程消耗128MB内部存储器(20MB*64State of Qatar,共消耗不到2GB内部存款和储蓄器,能够应用webbench做压力测量试验,启动还是相当慢。
1.3 花费低廉
购入F5
BIG-IP、NetScaler等负荷均衡调换机要求几十万毛润之,而开源Nginx代替这么些生意设施。
1.4 其余理由
网络计划轻易,相比apache就知晓了
支撑rewrite重写准则,能够依照域名、UHighlanderL的不等、将HTTP供给分到不一样的后端服务器群组
停放的健检作用
节约带宽,扶助GZIP压缩,能够加上浏览器本地缓存的Header头
支撑热安顿,能够在不间断服务的境况下、对软件版本进行进步

[root@vw010001135067 nginx-1.10.2]# yum install pcre-devel

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

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

5、Nginx的确定性信号调节
TERM,INT  火速关闭
QUIT       从容关闭
HUP        平滑重启
USEnclave1       重新展开日志文件、在切割日志时用处大
US翼虎2       平滑晋级可执路程序
WINCH      从容关闭职业经过

#access_log  logs/access.log  main;

增添模块

刚接触Nginx时,只晓得Nginx的作用是分模块的,并不掌握有个别模块默许是不参加到营造中去的,比方ngx_http_ssl_module模块,是用来支撑https商事的,默许情形下是未有创设到Nginx中的。

趁着业务不停强大,假诺急需Nginx帮衬少数模块,而那么些模块暗中同意不在Nginx的营造安插中,营造Nginx时,又尚未点名出席那几个模块,该如何做吧?是或不是能够给已经运维的Nginx动态拉长那些模块呢?答案是不容置疑的!

给运维中的Nginx动态增进模块的方案,与地方提到的平滑晋级Nginx的方案很雷同。上边大家来看一下怎么样给运维中的Nginx加多 ngx_http_ssl_module模块。

Nginx是一款高质量的HTTP和反向代理服务器,能够筛选高效的epoll(linux2.6内核State of Qatar、kqueue(freebsd卡塔尔、eventport(solaris10卡塔尔国作为网络I/O模型,能够援救高达50000个并发连接数的响应,而内部存款和储蓄器、CPU等系统财富消耗却超低、运转特别平稳。

yum install zlib-devel

其三步 平滑重启Nginx,完毕动态模块增添

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

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

#use epoll; #行使epoll(linux2.6的高品质方式)

其三步 使用旧版本布署参数,配置并编译新本子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

一、Nginx介绍:

# proxy_send_timeout 90; #后端服务器数据回传时间(代理发送逾期State of Qatar

第三步 编译

make

对于Nginx是哪些东西小编就背着了,请谷歌(Google卡塔尔国、百度之……那篇随笔是自个儿花了许多时间,通过看书(何人写的书自己都不想谈到了,寻觅下就有了)、以致依靠Nginx官方网址和网络海人民广播广播台湾大学腕人的的文章、参阅个别专门的职业性较强的论坛(像守住兄和多少个小朋友搞起来的linuxtone)最后收拾出来的笔记。鉴于索取和进献的观念,如下分享整个适应于初手参阅的Nginx详细介绍笔记:

#对 “/” 启用反向代理

第六步 运行新本子Nginx主进程

发送 US奥迪Q32非确定性信号给旧版本主进度号:

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)

澳门京葡网站 1

#概念错误日志,以至记录的日记品级

第八步 从容关闭旧版本的主进度,完毕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)

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可执路程序覆盖旧版本可执行程序

在上一步的底子上,执行一下限令就能够:

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

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

# redirect server error pages to the static page /50x.html

系统基于ubuntu server 14.04.4 amd64

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

proxy_pass ;

第七步 从容关闭旧版本的劳作经过

那时候,新、旧版本的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主进程号

1、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使得运转三个子进度。

#    index  index.html index.htm;access_log off;

第四步 完毕安装

sudo make install

敲定:Nginx在反向代理、rewrite准绳、稳固性、静态文件管理、内部存款和储蓄器消耗等地方都显现出很强的优势。

#    fastcgi_index  index.php;

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

make

此文对于那多少个对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

二零一零年3月:Nginx商场据有量为3354329、分占的额数为1.70%

gzip  on;#启用Gizp压缩

平整进级

当必要对正值运作的Nginx进行进步时,能够在不安息Nginx的情事下,使用新本子可能重编写翻译的可执路程序替换旧版本的可执路程序,这里我们从nginx-1.10.1升级到nginx-1.11.1

2、Nginx安装与启用

# concurs with nginx’s one

3、Nginx的主干配置与优化

proxy_set_header X-Forwarded-For $remote_addr;

4、Nginx与PHP(FastCGI)的设置、配置与优化

gcc:

展开配置文件

# client_body_buffer_size 128k;
#缓冲区代办缓冲客商端乞请的最大字节数,

#钦赐日志格式

#}

还真是地址写错了,把上面包车型大巴改善

编写翻译完保存退出并进行

[root@vw010001135067 nginx-1.10.2]# vi /etc/profile

#

[root@vw010001135067 local]# cd nginx-1.10.2

[root@vw010001135067 nginx-1.10.2]# ./configure

1.4 假诺您想利用openssl 成效,sha1 功用。 那么安装openssl ,sha1 吧

今昔自己的tomcat服务在10.1.29.15,要求经过nginx转发。那么张开nginx.conf,改过配置文件。如下,增添:

澳门京葡网站 2

#tcp_nopush    on;#该选取用于幸免网络梗塞

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

代码如下:

#server  127.0.0.1:8080  weight=1;

[root@vw010001135067 nginx-1.10.2]# ./configure

checking for OS

+ Linux 2.6.32-431.el6.x86_64 x86_64

checking for C compiler … found

+ using GNU C compiler

+ gcc version: 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

…….

Configuration summary

+ using system PCRE library

+ OpenSSL library is not used

+ md5: using system crypto library

+ sha1: using system crypto library

+ using system zlib library

nginx path prefix: “/usr/local/nginx”

nginx binary file: “/usr/local/nginx/sbin/nginx”

nginx modules path: “/usr/local/nginx/modules”

nginx configuration prefix: “/usr/local/nginx/conf”

nginx configuration file: “/usr/local/nginx/conf/nginx.conf”

nginx pid file: “/usr/local/nginx/logs/nginx.pid”

nginx error log file: “/usr/local/nginx/logs/error.log”

nginx http access log file: “/usr/local/nginx/logs/access.log”

nginx http client request body temporary files:
“client_body_temp”

nginx http proxy temporary files: “proxy_temp”

nginx http fastcgi temporary files: “fastcgi_temp”

nginx http uwsgi temporary files: “uwsgi_temp”

nginx http scgi temporary files: “scgi_temp”

#}

#

checking for OS

+ Linux 2.6.32-431.el6.x86_64 x86_64

checking for C compiler … not found

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

1.2 解压

#error_log  logs/error.log  info;

#    deny  all;#不愿意访问txt|doc文件

[root@vw010001135067 nginx-1.10.2]# whereis nginx

nginx: /usr/local/nginx

#nginx configure

export NGINX_HOME=/usr/local/nginx

export PATH=$PATH:$NGINX_HOME/sbin

#user nobody;#钦定使用的顾客

# proxy_busy_buffers_size 64k;
#高负荷下缓冲大小(proxy_buffers*2)

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#log_format  main  ‘$remote_addr – $remote_user [$time_local]
“$request” ‘

#    fastcgi_pass  127.0.0.1:9000;

#location ~ \.php$ { # “~ $”正则表明式相称 一旦匹配则不再向下相配

}

如图能正确访问项目,配置成功!

在安排文件中参与

配置好后,保存配置文件,並且重启nginx

#access_log  logs/host.access.log  main;

#当前的Nginx的配置

#    root          html;

# proxy_read_timeout 90;
#连续几天来成功后,后端服务器响适当时候间(代理选拔超时卡塔尔(قطر‎

假使有那些荒唐 那么实践

1.3 进入nginx文件夹,执行./configure命令

# root /opt/webRoot/xxx.xxx.com.static.js;

# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;