欢迎来到云服务器

服务器租用

springmvc+tomcat+nginx情况下如何实现单负载平衡

我们上一节说到只有一个nginx处事器,所以用户会见处事器是颠末nginx的,由nginx按照URL法则指向用户去会见谁人处事器,同时我们也说到,这样的处事器设计的漏洞就是,当改nginx高出了负载的压力的时候,nginx就不在事情,这样就导致用户无法举办相应的操纵了。为了使各人越发容易领略,我把图片从头画了一下,如下图

springmvc+tomcat+nginx情况下如何实现单负载平衡

由上图可以看到,用户进入颠末nginx,然后只要我们对nginx设置相应的法则,让它去转发到差异的处事器。这里我们给出三个匹配法则来举办处理惩罚,假如url是包括有login的则会转发到192.168.1.101可能是192.168.1.102这两台呆板,好比是虽然你假如只有一台呆板的话,也可以填写一个IP地点。好比是碰着http://api.yeehot.com/login/api/qq,那么会按照权重,用户会见到192.168.1.101可能192.168.1.102处事器。

相识了nginx的转发法则之后我们应该如何设置nginx,上一节我们已经说过如何安装nginx了,在安装后,我们可以对nginx举办设置,假如安装我上一节的nginx版本以及安装路径的话,我们的设置文件会在/usr/nginx-1.10.0/conf/nginx.conf,必然要留意的是不是我们解压的谁人文件的设置文件,

我们可以输入vi /usr/nginx-1.10.0/conf/nginx.conf,打开nginx.conf,这里我为了可以让各人利便阅读,把Nginx的设置做了一个说明,

#user nobody;

#历程数,界说了nginx执行时的历程数

worker_processes 4;

#变动worker历程的最大打开文件数限制

worker_rlimit_nofile 65535;

#错误日志

error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

# nginx毗连的配置。

events {

use epoll;

worker_connections 65535;

}

http {

#------------------Nginx后端处事器设置,这里我利用默认的轮询请求方法------------------

#登岸后端处事器设置,设置法则是, ip:port,#weight,代表权重,权重越大,代表会见到改IP的处事器的几率越大。

upstream loginserver {

server 192.168.1.101:8080 weight=50;

server 192.168.1.102:8080 weight=50;

}

#评论后端处事器设置

upstream commentserver {

server 192.168.1.103:8080 weight=50;

server 192.168.1.104:8080 weight=50;

}

#谈天后端处事器设置

upstream chatserver {

server 192.168.1.105:8080 weight=50;

server 192.168.1.106:8080 weight=50;

}

#-----------------Nginx后端处事器设置竣事-------------------------------------------

include mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;

server {

#监听的端口,80

listen 80;

#转发的域名,按照这个域名来转发下面的法则

server_name api.yeehot.com;

#字符集

charset utf-8;

#生存路径

root /mnt/yeehot;

index index.html index.htm index.php;

#默认的会见解点

location / {

index index.html index.htm;

}

#转发法则,当URL碰着login的时候,会转发到loginserver

location /login {

proxy_pass http://loginserver;

}

location /comment {

proxy_pass http://commentserver;

}

location /chat {

proxy_pass http://chatserver;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

#错误页面

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

以上的设置,主要是后端处事器的设置,端口的监听,域名的设置,已经url转发法则的设置,设置好后,我们还需要重启nginx,输入指令,nginx -s reload

spring mvc+tomcat的设置

我们这里假设用户已经打包好了springmvc项目包,以及安装好tomcat的环境下,由于spirng mvc包只是运行在tomcat处事器下的,这样我们只需要对我们的tomcat举办设置就可以了

我们打开tomcat的conf/server.xml,找到Host name="localhost" appBase="webapps",这一段代码,而且修改成如下的

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log." suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

<--添加以下这一项代码,docBase是项目标路径-->

<Context docBase="/Users/yeehot/Downloads/apache-tomcat-7.0.69/webapps/YeehotProgramKing" path="" debug="0" reloadable="false" />

</Host>

以上设置目标就是将tomcat配置成默认会见的目次,,好比是本来需要会见的地点是

http://api.yeehot.com:8080/YeehotProgramKing/login/api/qq

此刻只需要会见http://api.yeehot.com:8080/login/api/qq

由于我们方才设置nginx的时候设置后端处事器是如下的名目

upstream loginserver {

server 192.168.1.101:8080 weight=50;

server 192.168.1.102:8080 weight=50;

}

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号