nginx配置负载均衡

title: nginx配置负载均衡
date: 2016-04-19
categories: nginx
tags: ngixn
---html

1 nginx 负载均衡和反向代理

nginx是一种提供负载均衡和反向代理的服务器,另外一种服务器Apache也提供了这个功能。tomcat jetty是叫作应用服务,负责应用程序的部署,而nginx和apache 主要做为网络服务器,负责负载均衡和反向代理。java

负载均衡 :同时有n个用户访问服务器时,为了减轻服务器压力,将用户分别引入到分布式集群中的各个服务器,从而分担各个服务器的压力。nginx

反向代理 :介绍反向代理以前先说一下正向代理c++

正向代理 : 用户a向服务器A访问资源,但因为某种缘由用户a不能直接访问服务器A,且刚好a能够访问的服务器B,且B能够访问服务器A,则用户a能够经过服务器B访问服务器A,这就是正向代理,其中B就是代理服务器。apache

反向代理 : 经过第三方服务器(好比nginx)访问服务器集群中的内容(为了保证状态一致性,服务器中的各个机器上内容同样),这个第三方服务器就叫作反向代理。ubuntu

在正向代理中,用户明确知道数据在哪里,即有一条明确的到达资源的路径,而在反向代理中,用户不肯定所要得到的资源到底来自那一台服务器,只知道到达第三方的路径。centos

nginx就是一款经过反向代理 实现负载均衡服务器(Apache服务器提供了相似的功能),用户首先访问nginx,而后nginx从服务器集群中选择一台压力较小的服务器,而后将访问指向该机器。若服务器集群中某台机器宕机,则将该服务器从待选列表中删除。tomcat

为保证负载均衡内容的一致性,集群中各个机器上的内容是同样的,故Api能够部署在多个不一样的机器上,一般后台会有多个tomcat做为应用服务器,而将nginx做为反向代理来实现负载均衡。安全

与Apach相比,nginx支持高并发,内存消耗低,部署简单。服务器

2 nginx安装

以在centos/ubuntu 上安装nginx为例 :

cd /home
mkdir nginx # nginx安装目录

tar -zxvf nginx-x.x.x.tar.gz
./configure 
这里可能会报找不到 pcre  zlibdeng
建议先安装 gcc   zlib pcre

sudo apt-get install -y pcre pcre-devel openssl openssl-devel
sudo apt-get install -y gcc gcc-c++ autoconf automake
sudo apt-get install -y zlib zlib-devel 

安装完上面的包后 而后configure
make
make install

安装完测试 :

cd  /usr/local
ls  在该目录下发现多了一个nginx目录则说明安装成功
进入该目录 ,下面有4个目录 : 
conf : 配置文件
html :首页
logs :日志
sbin :命令行工具 ,该目录下的 nginx命令能够启动nginx

启动 nginx

/usr/local/nginx/sbin/nginx -t # 验证配置文件是否正确
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 启动并加载配置文件
加载这个默认的配置文件也能够 也能够直接运行nginx命令 ./nginx

当修改l这个默认的配置文件后 不用重启,只须要 :

./nginx -t
./nginx -s reload

3 nginx 经常使用命令

3.1 启动

启动格式

./nginx -c nginx配置文件地址 (默认在conf/nginx.conf)

3.2 中止

方式1 从容中止 : 安全地中止

kill -QUIT nginx进程号

查看nginx进程号 :ps -ef |grep nginx
master process:主进程号,只须要中止该进程号便可。

方式2 :快速中止

kill -TERM nginx进程号
或者

kill -INT nginx进程号

方式3 :强制中止

killall -9 nginx
或者 
pkill -9 nginx

3.3 重启

当修改了配置文件时,须要重启nginx才能生效。

验证配置文件

./nginx -t 
或者 
./nginx -t -c nginx配置文件地址

重启:

./nginx -s reload 

或者

kill -HUP nginx主进程号

-HUP : 发送信号重启

4 nginx信号控制

在nginx服务器中,一般都是通多对其发送一些控制信号进行控制,下面是一些常见的控制信号 :

HUP :重启 QUIT/INT : 从容关闭 TERM:快速关闭 USRI:切换日志文件 USR2:平滑升级(在不影响旧进程的状况下升级nginx) WINCH:从容关闭工做进程

相关文章
相关标签/搜索