nginx负载均衡与主备设置

准备工作

本次试验都是在win7下完成


安装apache-tomcat-7.0.50

1.设置conf下server.xml 端口为

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<Server port="8005" shutdown="SHUTDOWN">

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

复制tomcat,端口改为

 <Connector port="8082" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444" />

<Server port="8008" shutdown="SHUTDOWN">

<Connector port="8011" protocol="AJP/1.3" redirectPort="8444" />

端口不要重复,避免带了不必要的麻烦导致启动失败

注意是否设置了调试接口查看catalina.bat中

SET "CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"

如果设置了5888,那么要保证不能重复,或者直接加上rem注释(如果不这么做,会出现下面这个错误

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197))


2.将各自webapp文件夹下建ROOT文件夹,里面新建index.html,内容为

<!DOCTYPE html>
<html>
   welcome 8080
</html>

<!DOCTYPE html>
<html>
   welcome 8082
</html>

3.启动startup.bat


安装nginx-1.10.1

1.直接启动nginx.exe ,启动成功logs文件下会出现nginx.pid,浏览器输入localhost能查看成功页面

我第一次没启动成功,error.log提示bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

80端口被占用了!

因为nginx.conf文件中配置了

server {
        listen       80;

通过netstat -aon|findstr "80" 找到占用的进程,tasklist|findstr "1908"找到对应的进程名

httpd.exe                     1908 Services                   0      9,380 K

通过进程管理器杀之,再启动nginx.exe就可以了

2.配置nginx.conf

红色部分是修改的


worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  10;
    upstream tomcat_servers {
server 127.0.0.1:8080 ; 
server 127.0.0.1:8082  backup; 
    }


    server {
        listen       80;
        server_name  mylocalhost;

        location / {
            root   html;
            index  index.html index.htm;
        proxy_pass http://tomcat_servers;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

测试结果

1.浏览器输入localhost,页面展示8080,不会访问到backup

这时关掉8080对应tomcat窗口,继续访问,会很久(90秒左右)才会响应8082,就算改成

server 127.0.0.1:8080  max_fails=1  fail_timeout=3s也无济于事,求大神解答

再启动8080tomcat,页面能很快访问到8080,总结就是主tomcat访问很快,备tomcat访问很慢,而且是每次都慢!


看样子还是得用keepalived做主备啊!


2.配置成下面这样

server 127.0.0.1:8080  weight=5; 
server 127.0.0.1:8082 weight=5;

浏览器响应页面很随机的出现8080,8082,达到负载均衡的效果


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值