实践NGINX的反向代理与负载均衡
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实践NGINX的反向代理与负载均衡相关的知识,希望对你有一定的参考价值。
实践nginx的反向代理与负载均衡
安装nginx过程
[[email protected] opt]# yum install pcre-devel openssl-devel -y
[[email protected] opt]# wget -q http://nginx.org/download/nginx-1.10.2.tar.gz
[[email protected] opt]# useradd nginx -s /sbin/nologin -M
[[email protected] opt]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[[email protected] opt]# cd /usr/src/nginx-1.10.2/
[[email protected] nginx-1.10.2]# ./configure --prefix=/usr/local/nginx-1.10.2 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[[email protected] nginx-1.10.2]#make;make install
[[email protected] nginx-1.10.2]# cd /usr/local/
[[email protected] local]# ln -s /usr/local/nginx-1.10.2/ /usr/local/nginx
[[email protected] local]# echo ‘export PATH=/usr/local/nginx/sbin:$PATH‘>>/etc/profile
[[email protected] local]# source /etc/profile
[[email protected] local]# nginx
[[email protected] local]# lsof -i:80
配置nginx负载服务器文件
[[email protected] conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf
[[email protected] conf]# vim nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream server_pools { --在http区块里upstream模块,将web节点的IP或着域名放置池中
server 10.0.0.11:80 weight=1 max_fails=3 fail_timeout=10; --weight 权重
server 10.0.0.14:8081 weight=1 max_fails=3 fail_timeout=10; --max_fails失败的尝试次数
server 10.0.0.14:8082 weight=1 max_fails=3 fail_timeout=10; --fail_timeout 失败后的再次尝试时间
}
server {
listen 80;
server_name bbs.etiantian.org;
location / {
proxy_pass http://server_pools; --proxy模块调用upstream模块池里面的web节点,
proxy_set_header Host $host; --该参数在访问后端服务器的时候 会带上hosts信息。定义虚拟主机的信息标签
proxy_set_header X-Forwarded-For $remote_addr; --代理的时候在会显示真实客户客户端IP地址
}
}
配置完成了检测语法重启服务
[[email protected] conf]# nginx -t
nginx: the configuration file /usr/local/nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.10.2/conf/nginx.conf test is successful
[[email protected] conf]# nginx -s stop
[[email protected] conf]# nginx
查看web服务器的首页文件(下面3台web服务器是之前实验做好了的)
查看nginx服务器上的首页文件
[[email protected] ~]# cat /usr/local/nginx/html/www.anuo1.com/index.html
anuo nginx web --111111
查看tomcat多实例服务器的首页文件
[[email protected] ~]# cat /usr/local/tomcat1/webapps/ROOT/index.jsp
anuo tomcat web111111
[[email protected] ~]# cat /usr/local/tomcat2/webapps/ROOT/index.jsp
anuo tomcat web2
测试访问
[[email protected] ~]# ifconfig eth0 --查看确认负载均衡服务器的IP
eth0 Link encap:Ethernet HWaddr 00:0C:29:9F:CF:C6
inet addr:10.0.0.13 Bcast:10.0.0.255 Mask:255.255.255.0
……
进行测试:
[[email protected] conf]# elinks -dump 10.0.0.13 --elinke -dump 命令是直接将URL的内容输出至标准输出
anuo tomcat web111111
[[email protected] conf]# elinks -dump 10.0.0.13
anuo tomcat web2
[[email protected] conf]# elinks -dump 10.0.0.13
anuo nginx web --111111
nginx还有一些参数说明
ip_hash 参数
可以解决动态网页的session共享问题,但有时会导致请求负载均衡分配不均
least_conn 参数
会根据后端节点的连接数来决定分配情况,哪个机器连接数少就分发。 就是看谁闲发送给谁
fair 参数
根据后端服务器的响应时间来分配请求,响应时间短的优先分配。
调度算法
定义轮询调度算法 rr 默认调度算法 平均分配
定义权重调度算法 wrr
定义静态调度算法 ip-hash
定义最小的连接数-least_conn
以上是关于实践NGINX的反向代理与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章