nginx负载均衡与主备设置

准备工作

本次试验都是在win7下完成


安装apache-tomcat-7.0.50

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

                 connectionTimeout="20000"
               redirectPort="8443" />


 

复制tomcat,端口改为

                 connectionTimeout="20000"
               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,内容为



   welcome 8080



   welcome 8082

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,达到负载均衡的效果


你可能感兴趣的:(HA&LB,nginx,负载均衡,主备,高可用)