最近在弄ejabberd+riak。其实这俩东西配置挺坑的,然后具体这俩货怎么配置,我以后会抽空写出配置的详细过程。对于负载均衡,我知道的现在有Nginx/LVS/HAProxy这三个大仙儿,各自有各自的优缺点,有关优缺点大家可以度娘一下。先来看看什么是负载均衡。
负载均衡:是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。--摘自度娘
今天先来看看Nginx。
一、本机环境:
ubbuntu 14
pcre-8.38 传送门-->pcre
nginx-1.9.12 传送门-->nginx
二、安装
1.分别解压两个压缩包
1 #解压pcre并重命名文件夹2 tar zxvf ./pcre-8.38.tar.gz3 mv pcre-8.38pcre4 #解压nginx并重命名文件夹5 tar zxvf ./nginx-1.9.12.tar.gz6 mv nginx-1.9.12 nginx
View Code
2.安装依赖
1 sudo apt-get install -y gcc g++ make
View Code
3.安装pcre
1 cd ./pcre2 ./configure prefix=/usr/local/pcre3 make && make install
View Code
4.安装nginx
1 #进入nginx文件夹2 cd ../nginx3 #加入参数编译4 ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --with-http_stub_status_module --with-http_ssl_module --with-pcre=stream --with-pcre=/programs/pcre
View Code
在这步,需要注意注意几点:
第一点,--with-pcre=stream这个参数,自从nginx1.9.0版本开始,开始支持tcp的负载均衡,但是默认没有这个功能,加入这个参数才能对tcp金星负载均衡。
第二点,--with-pcre这个参数,这个其实是要你定位你pcre的源代码的,不管你是否刚才装了pcre。
第三点,就是有关openssl。当你遇到如下错误,要安装Openssl
1 #错误1,需要安装openssl2 ./configure: error: SSL modules require the OpenSSL library.3 You can either do not enable the modules, or installthe OpenSSL library4 into the system, or build the OpenSSL library statically from the source5 with nginx by using --with-openssl=option.6 #安装openssl7 sudo apt-get install -y openssl
View Code
第四点,有关zlib。当遇到如下错误,要安装libssl-dev
1 #错误,需要安装libssl-dev2 ./configure: error: the HTTP gzipmodule requires the zlib library.3 You can either disable the module by using --without-http_gzip_module4 option, or installthe zlib library into the system, or build the zlib library5 statically from the source with nginx by using --with-zlib=option.6 #安装libssl-dev7 sudo apt-get install -y libssl-dev8 #./configure通过以后,开始编译9 sudo make && make install
View Code
现在你可以到转到/usr/local/nginx/sbin/目录去启动Nginx。不出意外,你打开浏览器输入网址,应该可以看到Nginx的欢迎界面
那现在先恭喜下,你的Nginx安装成功了。下面开始做配置。
三、将Nginx添加到PATH
1 #编辑/etc/bash.bashrc2 sudo vim /etc/bash.bashrc
View Code
在最下面添加如下代码
1 #添加如下代码2 if [ -d "/usr/local/nginx/sbin" ]; then
3 PATH="$PATH:/usr/local/nginx/sbin"
4 fi
5 #保存退出6 #刷新配置7 source /etc/bash.bashrc
View Code
现在你在任何地方都可以用nginx来启动了
四、配置
1.Http
你的conf文件在/usr/local/nginx/conf中,叫做nginx.conf,你需要对其进行配置,下面我的一个简单的例子,来展示如何配置
1 http {2 upstream backend {3 server 10.0.1.11:1234;4 server 10.0.1.12:1234;5 }6 server {7 listen 80;8 server_name example.com;9 location /{10 limit_except GET {11 deny all;12 }13 proxy_pass http://backend;
14 }15 }16 }
View Code
其中upstream部分设置你要负载的地址,可以添加weight来设置比重
proxy_pass后面要跟http://upstreamname这样才能配置成功,然后你可以重启你的nginx来验证你的配置
2.tcp
还是更改conf文件,如下例子
1 stream {2 upstream backend {3 server 10.17.0.1:1234;4 server 10.17.0.2:1234;5 }6 server {7 listen 8080;8 proxy_connect_timeout 1s;9 proxy_timeout 3s;10 proxy_pass backend;11 }12 }
View Code
这里要注意proxy_pass填的是upstreamname,没有http://
这样你就能访问tcp接口了。
其实有关Nginx还有很多细项配置,我以后可能会在讲解实际软件配置时再讲解。这篇先写到这了,希望对大家有帮助。