关闭

nginx负载均衡与主备设置

标签: nginx负载均衡主备高可用
3304人阅读 评论(0) 收藏 举报
分类:

准备工作

本次试验都是在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,达到负载均衡的效果


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:226698次
    • 积分:3897
    • 等级:
    • 排名:第9169名
    • 原创:140篇
    • 转载:77篇
    • 译文:0篇
    • 评论:41条
    心境
    • n年后的事情会是什么样子
    • 谁知道呢
    • 做好现在吧
    • 每天能进步一点
    • 你就应该满足了
    博客专栏