nginx编译安装和平滑升级

1.1.1  本文档为nginx安装及配置文档,主要实现http反向代理功能;作用是将nginx作为前端服务器,通过访问规则代理转发至后端对应的tomcat服务器

部署环境:

系统版本:Linux version 2.6.32-431.el6.x86_64(`cat /proc/version`)

安装及配置:

1安装nginx依赖环境

安装pcre库

#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz

#tar xvzf pcre-8.21.tar.gz

#cd pcre-8.21

#./configure && make && make install

安装zlib库

#wget http://zlib.net/zlib-1.2.7.tar.gz

#tar zxvf zlib-1.2.7.tar.gz

#cd zlib-1.2.7.tar.gz

#./configure

#make

#make install

安装nginx

#wget http://nginx.org/download/nginx-1.6.2.tar.gz

#tar zxvf nginx-1.6.2.tar.gz

#cd nginx-1.6.2

# ./configure--sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/usr/local/src/pcre-8.21 --with-zlib=/usr/local/src/zlib-1.2.7

#make

#make install

1.2    关闭防火墙

#/etc/init.d/iptables stop

1.3    启动nginx和停止

/usr/local/nginx/nginx

Ps –ef |grep nginx

停止

Pkill nginx   kill –QUIT n    //n表示nginx的进程号

1.4    定制配置文件

Nginx对外的端口是80,所以确保80端口不被其他程序占用(特别是tomcat)

修改配置文件,

#vim /usr/local/nginx/nginx.conf

upstream tgmas {

server111.11.84.32:8080 max_fails=3 fail_timeout=3s;

server111.11.84.33:8080 max_fails=3 fail_timeout=3s;

ip_hash;

}

在server{}范围添加如下代码:

location ~* ^.+\.(js|css)$ {

access_log off;

expires      1d;

break;

}

location ~*^.+\.(jpg|jpeg|gif|png|bmp)$ {

access_log off;

expires      3d;

break;

}

location ^~/wygj/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass   http://tgmas;

}

注:(1)location ~*^.+\.(js|css)$      所有以.js或.css结尾的访问操作;

         (2)location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$                 所有访问图片的操作;

         (3)^~ /wygj/      所有以/wygj/结尾的访问操作;

         (4)access_log off       访问时不开启日志;

         (5)expires           过期时间;

         (6)proxy_pass            反向代理路径,即指向某个业务tomcat服务器;

         (7) upstream tgmas代理服务器群组

         (8) max_fails=3 fail_timeout=3s访问单台服务器最大错误数及访问超时时间;

         (9) ip_hash负载策略,session同步

1.4.1  访问

以上述参数为例,以下访问地址就会跳转至http://127.0.0.1:8080

http://127.0.0.1/wygj

平滑升级:

1用新的可执行程序替换旧的可执行程序,对于编译安装的nginx可以将新的可执行文件安装到旧的可执行文件,需要先备份旧版本的可执行文件,再进行编译安装新的nginx

2kill –USR2 旧版本的主进程号

3这个时候旧版本的nginx的主进程为.pid.oldbin ,然后开启新版本的nginx可执行文件,依次启动主进程和新的工作进程

4现在新,旧的nginx会同时运行(ps –ef|grepnginx),共同处理请求。现在需要停止旧版本的nginx,必须发送WINCH信号给主进程,然后它的工作将开始从容关闭

Kill –WINCH 旧版本的主进程号

5 一段时间后,旧的工作进程(workproess)处理了所有已连接的请求后退出,由新的工作进程来处理请求了

2      详细操作如下:

1 查看当前nginx版本和编译路径

#/usr/local/nginx/nginx –v

nginx/1.2.9

#/usr/local/nginx/nginx –V

nginx version: nginx/1.2.9

built by gcc 4.4.7 20120313 (Red Hat4.4.7-4) (GCC)

configure arguments:--sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf--pid-path=/usr/local/nginx/nginx.pid --with-pcre=/root/pcre-8.36--with-zlib=/root/zlib-1.2.8

2 使用新的可执行程序替换旧的可执行程序,对于编译安装的nginx,可以将新版本编译安装到旧版本的安装路径,替换之前,最好先备份一下旧的可执行文件

#cp  /usr/local/nginx/nginx   ~/

#tar xvzf nginx-1.6.2.tar.gz

#cd nginx0-1.6.2

# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module

# make && make install

3 查看一下当前的主进程号是多少,然后执行  kill –USR2 21421(旧版主进程号)

Ps –ef|grepnginx

1. root     21421     1  0 20:37 ?        00:00:00 nginx: master process nginx

2. nobody   24021 21421  0 20:49 ?        00:00:00 nginx: worker process

3. root     28765 24076  0 22:04 pts/1    00:00:00 grep nginx

#kill –USR2  21421

4 这时候旧版的nginx的主进程将重命名它的.pid 文件为.oldbin(例如:/usr/local/nginx/nginx.pid.oldbin),然后执行新的版本nginx可执行文件

# /usr/local/nginx/nginx

# Ps–ef |grep  nginx

1. root     21421     1  0 20:37 ?        00:00:00 nginx: master process nginx

2. nobody   24021 21421  0 20:49 ?        00:00:00 nginx: worker process

3. root     28768 21421  0 22:04 ?        00:00:00 nginx: master process nginx

4. nobody   28769 28768  0 22:04 ?        00:00:00 nginx: worker process

5. root     28786 24076  0 22:11 pts/1    00:00:00 grep nginx

5 此时,新,旧版本的nginx会同时运行,共同处理输入的请求,要逐步停止旧版本的nginx,必须发送WINCH信号给旧的主进程,然后他的工作进程将开始从容关闭

# Kill –WINCH  `cat /usr/local/nginx/nginx.pid.oldbin`

6 一段时间后,旧的工作进程(work process)处理了所有已连接的请求后退出,仅由新的工作进程来处理

1.  # ps -ef | grep nginx

2.  root     21421     1  0 20:37 ?        00:00:00 nginx: master process nginx

3.  root     28768 21421  0 22:04 ?        00:00:00 nginx: master process nginx

4.  nobody   28769 28768  0 22:04 ?        00:00:00 nginx: worker process

root     28799 24076  0 22:15 pts/1    00:00:00 grep nginx

7 发送QUIT信号给旧的主进程,使其退出而只留下新的nginx服务器运行

#Kill –QUIT ·cat /usr/local/nginx/nginx.pid.oldbin·

# ps –ef |grep nginx

1. root     28768     1  0 22:04 ?        00:00:00 nginx: master process nginx

2. nobody   28769 28768  0 22:04 ?        00:00:00 nginx: worker process

3. root     28808 24076  0 22:20 pts/1    00:00:00 grep nginx

时间: 2024-10-27 06:03:53

nginx编译安装和平滑升级的相关文章

Nginx服务器 安装 与平滑升级详细介绍   简单使用1

#nginx -V (-V 可以显示出当时的标准,添加了什么模块) [[email protected] nginx-1.8.0]# ./configure --help |grep proxy --without-http_proxy_module        disable ngx_http_proxy_module --http-proxy-temp-path=PATH        set path to store http proxy temporary files --with-

Nginx编译安装,启动,停止,升级。

1.简单介绍下Nginx Nginx是一款轻量级的web服务器和反向代理服务器,它使用了epoll的I/O模型,也就是事件触发I/O模型,减少了进程的生成切换所消耗的系统资源(CPU的压力减少,内存的占用也会减少),可以达到很高的并发请求.它是一款开源软件,企业成本降低,它的使用配置也比较简单,同时支持Rewrite,作为反向代理的时候可以检查后端的Web服务器的健康状况,能够支持热部署. 2.Nginx安装,重启,升级,停止. 环境是Centos系统,通过www.nginx.org下载需要的源

nginx 安装 与 平滑升级

首先获取两个 nginx 源码包 nginx-1.4.7.tar.gz nginx-1.6.2.tar.gz ------------安装nginx---------- # yum install -y gcc gcc-c++ make  //安装gcc由于实验环境缺少编译工具 # yum install -y pcre-devel zlib-devel    // nginx rewrite gzip 需要依赖的库 解压nginx # tar -xzvf nginx-1.4.7.tar.gz

nginx重载配置文件及平滑升级

Nginx命令行选项 启动.停止.重启nginx命令 如何重新加载nginx配置文件 nginx程序不重启平滑升级可执行文件 一.Nginx命令行选项 不像许多其他软件系统,Nginx 仅有几个命令行参数,完全通过配置文件来配置 -c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的. -t 不运行,而仅仅测试配置文件.nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件. -v 显示 nginx 的版本. -V 显示 nginx 的版

NGINX编译安装后添加新模块的方法

刚忙完研发又有新的需求过来,测试服务器的nginx需要有HttpUpstreamRequestHashModule和HttpStubStatusModule:擦!安装软件环境时怎么不说清楚:妹的,悲剧. 测试服务器崩溃的是不是我安装的软件,天啊.赶紧搞吧!!! 环境:centos 6.4 64位 编译安装nginx 1:查看nginx版本和安装时间带的具体参数  /usr/local/nginx/sbin/nginx  -V 2:下载相应的版本的nginx源码包[nginx-1.5.11.tar

nginx 编译安装 及错误解决。

nginx 编译安装 Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.能够支持高达 50,000 个并发连接数的响应.相比apache nginx处理静态页面更加优秀迅速,配置也相当简洁明了. nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-

Nginx编译安装Lua模块

Nginx编译安装Lua模块 一.安装Lua环境及相关库 官网网址:https://github.com/openresty/lua-nginx-module LuaJIT ` wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz make install PREFIX=/usr/local/LuaJIT export LUAJIT_LIB=/usr/local/LuaJIT/lib export LUAJIT_INC=/usr/local/Lu

Nginx编译安装及编译参数讲解

实验环境说明:操作系统:Centos 7 64位Nginx版本:Nginx 1.12.2 编译安装前的准备:安装Nginx编译安装需要依赖的一些包yum install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel -y #Nginx的编译安装及编译参数详解 Nginx的编译参数讲解--prefix=PATH set installation prefix #设置安装路径--sbin-path=PA