珠海网站制作定制,网络广告的特点包括,wordpress 幻灯片 视频,益阳建站网站制作负载均衡
官网文档 Using nginx as HTTP load balancer
nginx中实现反向代理的方式
HTTP#xff1a;通过nginx配置反向代理到后端服务器#xff0c;nginx将接收到的HTTP请求转发给后端服务器。使用 proxy_pass 命令
HTTPS#xff1a;通过nginx配置反向代理到后端服务器通过nginx配置反向代理到后端服务器nginx将接收到的HTTP请求转发给后端服务器。使用 proxy_pass 命令
HTTPS通过nginx配置反向代理到后端服务器nginx将接收到的HTTPS请求转发给后端服务器。使用 proxy_pass 命令
FastCGI一种常见的反向代理方式通过将CGI程序从网络上收到的大量请求和应答保存在内存中来提高性能。使用 fastcgi_pass 命令
uwsgi一种Python的WSGI服务器它支持WebSocket协议并且可以与nginx一起使用作为反向代理。使用 muwsgi_pass 命令
SCGI一种简单的CGI协议它可以在nginx中用作反向代理通常用于处理大量小文件请求。使用 scgi_pass 命令
memcached一种内存对象缓存系统nginx可以通过反向代理将请求转发到memcached服务器来获取缓存的数据。使用 memcached_pass 命令
gRPC一种高性能、开源和通用的 RPC远程过程调用框架nginx可以通过反向代理将请求转发到支持gRPC的后端服务器。使用 grpc_pass 命令
负载均衡策略
轮询-round-robin-Nginx默认策略
对应用服务器的请求以轮询方式分发。
http {upstream myapp1 {server srv1.example.com;server srv2.example.com;server srv3.example.com;}server {listen 80;location / {proxy_pass http://myapp1;}}
}
加权轮询-weight
如下所示假设有5个请求则3个请求被定向到srv1,1个请求被定向到srv2,1个请求被定向到srv3 upstream myapp1 {server srv1.example.com weight3;server srv2.example.com;server srv3.example.com;}
最少连接-least-connected
下一个请求被分配给具有最少活动连接数的服务器。 使用 least_conn 命令
upstream myapp1 {least_conn;server srv1.example.com;server srv2.example.com;server srv3.example.com;}
ip-hash
使来自同一个客户端基于客户端IP的请求始终定向至某一个服务器
upstream myapp1 {ip_hash;server srv1.example.com;server srv2.example.com;server srv3.example.com;
}
实验
192.168.28.158nginx实现反向代理192.168.28.160tomcatweb1服务器192.168.28.162tomcatweb2服务器
配置nginx
[rootnginx ~]# yum -y install yum-utils
[rootnginx ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
namenginx stable repo
baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck1
enabled1
gpgkeyhttps://nginx.org/keys/nginx_signing.key
module_hotfixestrue[nginx-mainline]
namenginx mainline repo
baseurlhttp://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck1
enabled0
gpgkeyhttps://nginx.org/keys/nginx_signing.key
module_hotfixestrue[rootnginx ~]# yum makecache
upstream tomcat { 指定后台服务器server 192.168.28.160:8080;server 192.168.28.162:8080;
}
server {listen 80;server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {
# root /usr/share/nginx/html;
# index index.html index.htm;proxy_pass http://tomcat; 指定upstream组名}
...
配置webweb1和web2两者配置一致
[rootweb1 ~]# ls
anaconda-ks.cfg apache-tomcat-7.0.42.tar.gz jdk-8u151-linux-x64.tar.gz original-ks.cfg
[rootweb1 ~]# tar -zx -f jdk-8u151-linux-x64.tar.gz -C /usr/local/
[rootweb1 ~]# ln -s /usr/local/jdk1.8.0_151/ /usr/local/java
[rootweb1 ~]# sed -i $a \export JAVA_HOME/usr/local/java\nexport PATH$PATH:$JAVA_HOME/bin /etc/profile
[rootweb1 ~]# source /etc/profile
[rootweb1 ~]# java -version
java version 1.8.0_151
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)[rootweb1 ~]# tar -zx -f apache-tomcat-7.0.42.tar.gz -C /usr/local/
[rootweb1 ~]# ln -s /usr/local/apache-tomcat-7.0.42/ /usr/local/tomcat
[rootweb1 ~]# sed -i $a \export CATALINA_HOME/usr/loca/tomcat /etc/profile
修改tomcat默认主页改为 /usr/local/tomcat/webapps/ROOT/index.html
[rootweb1 ~]# vim /usr/local/tomcat/conf/server.xml
...Host namelocalhost appBasewebappsunpackWARstrue autoDeploytrueContext path/usr/loca/tomcat/webapps/ROOT docBaseindex.html /
.../Host
[rootweb1 ~]# bash /usr/local/tomcat/bin/startup.sh[rootweb1 ~]# echo This is tomcat web1 /usr/local/tomcat/webapps/ROOT/index.html
[rootweb2 ~]# echo This is tomcat web2 /usr/local/tomcat/webapps/ROOT/index.html
测试访问nginx实际访问的是tomcat刷新在web1和web2之间轮番替换