我们上一节说到只有一个nginx处事器,所以用户会见处事器是颠末nginx的,由nginx按照URL法则指向用户去会见谁人处事器,同时我们也说到,这样的处事器设计的漏洞就是,当改nginx高出了负载的压力的时候,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 "%r" %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;
}