nginx在CentOS虚机环境下的安装配置,实现3台虚机负载均衡

来源:互联网 发布:西南科技网络教育 编辑:程序博客网 时间:2024/05/16 10:41

nginx是款功能强大的web应用服务器Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。

总结一下在虚机环境下,安装配置nginx用于负载均衡的过程。

 

由于测试使用的是静态jsp页面,首先在三台虚机上安装jdk和tomcat环境,并配置页面,这里不赘述。但是在配置tomcat过程中有个问题,就是始终无法将自己编辑机的页面设为默认页面,无奈,将tomcat中的自己项目的文件夹名称改为ROOT,而原有的root文件夹另外换了个名字。

 

配置好环境后就是安装nginx和配置了,nginx不需要在所有的虚机上都安装,只在主服务器上安装,由于设计的网络是星形结构,另外两台虚机作为backup连接到主虚机上,彼此之间没有连接。

安装过程如下:

首先是安装的一些准备工作,在我的虚机上没有wget命令,依次安装下列需要的命令。

yum install wget
yum install pcre
yum install openssl*
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make
yum -y install gd gd2 gd-devel gd2-devel

一般我们都需要先装pcre, zlib,据说前者为了重写rewrite,后者为了gzip压缩。


1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/src

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

tar -zxvf pcre-8.32.tar.gz

cd pcre-8.32

./configure

make

make install

3.安装zlib库
http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /usr/local/src 

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make

make install

4.安装ssl(某些vps默认没装ssl)

cd /usr/local/src

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

tar -zxvf openssl-1.0.1c.tar.gz

5.安装nginx,安装好上述的需要的环境后,接下来就是安装nginx的时候了,本次安装的是nginx-1.5.2版本,安装到/usr/local/nginx目录下,下面是安装代码

cd /usr/local/src

wget http://nginx.org/download/nginx-1.5.2.tar.gz

tar -zxvf nginx-1.5.2.tar.gz

cd nginx-1.5.2  

./configure --sbin-path=/usr/local/nginx/nginx \

--conf-path=/usr/local/nginx/nginx.conf \

--pid-path=/usr/local/nginx/nginx.pid \

--with-http_ssl_module \

--with-pcre=/usr/local/src/pcre-8.21 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.1c  

make

make install

安装的代码很长,这里分行来写,便于阅读 

--sbin-path是安装后的路径,下面的几个路径依次是conf文件和pid文件的路径

--with-pcre后面指向的是pcre的路径

--with-zlib后面指向的是zlib的路径

--with-openssl后面指向的是openssl的路径

 

安装完成后,nginx的目录如下

client_body_temp        nginx.pid           fastcgi.conf            

fastcgi.conf.default    logs                scgi_params
fastcgi_params          mime.types          scgi_params.default
fastcgi_params.default  mime.types.default  scgi_temp
fastcgi_temp            nginx               uwsgi_params
html                    nginx.conf          uwsgi_params.default
koi-utf                 nginx.conf~         uwsgi_temp
koi-win                 nginx.conf.default  win-utf

安装过程中可能会出各种错误,这些错误大多数是因为某些需要的命令或者文件没有安装,安装提示安装后就没问题了。

 

接下来介绍如何配置nginx

在安装后的路径/usr/local/nginx/路径下,有个nginx.conf文件,这是nginx的配置文件,我们要做的就是稍微修改下这个文件中的内容就可以了。

 

#工作模式与连接数上限

events 
{

  #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux2.6 

  #以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
  use epoll; #增加这行

  #单个进程最大连接数(最大连接数=连接数*进程数)
  worker_connections 1024;

}

 

在http代码段中添加

upstream localhosts {
 #upstream的负载均衡,weight是权重,可以根据机器配置定义权重,也可以不写,什么都不写就是轮询算法。

 #weigth参数表示权值,权值越高被分配到的几率越大。
server 192.168.0.11:8080 [ weight=1 max_fails=3 fail_timeout=60s];
server 192.168.0.12:8088 [ weight=1 max_fails=3 fail_timeout=60s];
server 192.168.0.13:8080;
}

 

#虚拟主机的配置
server
{
#监听端口
listen 192.168.0.11:80;
#域名可以有多个,用空格隔开,这里使用的是主服务器的ip
server_name 192.168.0.11;
index index.html index.htm index.php;
 
location / {
            proxy_pass   http://localhosts;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_redirect default;
            }
}

修改完配置文件后,可以使用 /usr/local/nginx/nginx -t -c nginx.conf 命令测试配置文件的语法,-t表示测试,-c表示按照哪个文件进行。
启动nginx命令
/usr/local/nginx/nginx -c nginx.conf #按照nginx.conf文件启动
停止命令
/usr/local/nginx/nginx -s stop

如果存在在一台服务器上能ping通另一台服务器的ip,却无法在浏览器中打开网页的情况,需要将虚机的防火墙关闭,命令为 
service iptables stop

至此,一个简单的配置就完成了。在浏览器中输入192.168.0.11,刷新页面会看到来自服务器1,2,3的页面在轮转变换。
 
关于nginx负载均衡的算法分析,这篇文章分析较为深入,可以参考
http://blog.jobbole.com/24574/
 
以上只是初窥nginx,想要更深入了解nginx的功能,可以参考如下文章
http://www.2cto.com/os/201212/176520.html
http://blog.csdn.net/zacklin/article/details/7859680
0 0
原创粉丝点击