Nginx

本次目的是使用Nginx负载均衡,下面开始记录过程以及发生的问题的解决:

 

准备最少2个Tomcat,2个Tomcat默认端口是8080,需要更改一个为其他端口

我这里是8080与8081,更改端口在conf目录下的server.xml中配置,端口,访问端口,端口。避免启动发送端口占用问题

 

启动Tomcat先测试访问:

访问1:

访问2:

 

准备工作完毕后,这就是2个服务者。当有客户来时,由这两个服务交替分担服务客户去

 

下载Nginx工具

 

在logs目录下,有2个日志需要注意:

一个Access成功访问日志,一个是error错误日志。启动出现错误,或是成功访问查看日志。在logs中

 

接下来如何配置呢?让Nginx管理我们的Tomcat去调度处理请求:

编辑conf目录下的nginx.conf文件,配置的有这样几个地方注意:

upstream test.com将Tomcat注册到Nginx容器中,test.com只是个名称。listen Nginx监听的端口,location /当出现请求,交给谁去处理。

 

什么是代理,在Java中有静态与动态代理。代理是在代码前后插入操作。帮你完成一些操作。proxy_pass,当有人来请求Nginx时,这时在这之前由谁去处理本次请求。按照url,进入到我们配置的服务池中,挑选服务来处理请求

 

在这个配置中,完成了这样的步骤:

1:按照url将服务注册到容器中,给容器取个名字便于引用

2:配置Nginx监听端口

3:配置请求时由谁来处理,填写容器的url,url是容器名字

 

中间这几句代码:

upstream test.com {                    #test.com是名字,随意取,容器内是n个服务对象,weight权重描述,越大服务被分配概率则越大
      server 127.0.0.1:8080 weight=2;
      server 127.0.0.1:8081 weight=1;
    }

    server {
        listen       81;                     #监听端口
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location ~ .*\.(css|js|jpg|png)$ {         #遇到资源时,处理的路径,经常发生404,配置进行处理
            root /;
        }
 
        location / {
            proxy_pass http://test.com;            #当有人请求时,交与给谁处理?填写容器url,挑选服务进行处理
            proxy_redirect default;
        }

......................

 

配置到这里就可以了,start nginx.exe启动nginx。

启动后,在window任务管理区是管不掉,一次是启动2个,关闭一个,又打开。

关闭命令:taskkill /im nginx.exe /f

Linux可以尝试使用kill关闭,还未测试

 

访问Nginx监听的81端口,已经转到Tomcat为8080身上去处理了,资源全部请求成功,网站小图标因为没有

当我们多访问两次,就换了一个服务者来进行处理了

 

我这里将图片都放在了跟目录下的img上。因为配置时:

location ~ .*\.(css|js|jpg|png)$ {
            root /;
}

有遇到这样的请求,转到/根目录下去,这样路径就是:

http://192.168.1.8:81/img/xxxxx.png

192.168.1.8:81,在收到请求时,被8080去处理了。url是:192.168.1.8:8080。

剩下的uri是:img/xxxxx.png,这个照片就符合conf的配置,进去根目录,按照img去img下找文件了。

 

为什么配个这?当url是:192.168.1.8:8080时,这个时候,如果我不配置/,那么就是相对路径,则去工程目录下找。

我的尝试是,在工程路径下找能找到,问题是,6个照片,每次请求,总会有1-2个照片404,刷新一次请求,之前404的照片就出来了。但其他的照片又404了。意思是,资源并没有完整的下载下来。配置在外面,去请求外部的资源,反而自己都请求到了。故有此一配。

 

其余就没啥了,Nginx。我们将服务注册进去,由这个容器,来决定由他里面的服务池,选谁来处理请求。这就是所谓的负载均衡。为啥需要这,因为一个服务器吃不住的时候,可以多个服务同时服务客户。那么这时候,大家都请求一个服务,由一个服务去告诉客户端去请求谁,将客户分担出去。分担处理减少压力。这就是负载均衡干的事情。合理的选择择优服务去处理。

 

有个问题是这样,如何保证处理者与客户端始终是一个呢?如果服务者不是一个,数据可能会乱掉。那就只有做标识了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值