【原创】Nginx在Windows环境下的反向代理与负载均衡的配置与验证

Nginx在Windows环境下的反向代理与负载均衡的配置与验证

首先,相信看这篇文章的同学对于反向代理和负载均衡都已经有了一定的了解。也知道Nginx可以实现,只是想来查看和验证一下配置和实现的。

一 环境:

主机环境: win7操作系统
主机环境

开发工具:
1、Intellij IDEA 13.0.1
2、apache-tomcat-7.0.67
3、weblogic10
4、nginx-1.8.1(windows版本)

工程项目:
1、UM项目(使用tomcat容器、8080端口)

UM图片

2、SSO项目(使用weblogic容器、7001端口)

SSO图片

二 基本操作和配置

1、运行nginx。双击nginx.exe。(它会弹出一个cmd窗口,然后一闪而过,用过tomcat的同学肯定都会认为运行失败了。其实不然,可以通过任务管理器看出来,运行成功。)
2、关闭nginx。命令 nginx -s stop(强制停止。)
3、重新加载文件。命令 nginx -s reload
4、配置文件路径。conf\nginx.conf。

三 反向代理配置

server {
        #这个表示的是nginx所监听的端口。http默认为80端口。
        listen       80;
        #这个server的名字。随便取吧
        server_name  localhost;
        #所代理的地址和端头
        location / {
            #这里是代理的动态的服务。nginx还可以代理静态的内容,这里不做详细的讨论。
            proxy_pass   http://127.0.0.1:8080;
        }
        ##########以后的省略。
    }

这样,在浏览器当中,输入http://localhost 便能够访问到UM项目了。

挖坑与问题
挖坑:
在调试当中,我遇见了一个问题,当时我在方向代理SSO项目的时候,发现了一个问题。起初,我没有隐藏项目名。即访问路径为http://localhost:7001/sso_demo_weblogic。所以我有了如下的配置:

server {        
        listen       80;
        server_name  localhost;
        location / {
          proxy_pass   http://localhost:7001/sso_demo_weblogic;
        }
        ##########以后的省略。
    }

项目无法访问到!!!
后来才明白,所代理的,只能够代理到IP和端口这个级别。不能够再代理到项目这个级别。
于是在在项目当中weblogic.xml当中添加了,用于隐藏项目名称:

<weblogic-web-app>
    <context-root>/</context-root>
</weblogic-web-app>

所以,正确的应该是:

server {        
        listen       80;
        server_name  localhost;
        location / {
          proxy_pass   http://localhost:7001;
        }
        ##########以后的省略。
    }

问题:
但是出现了一个很神奇的问题。我使用如下的配置:

server {        
        listen       80;
        server_name  localhost;
        location / {
          proxy_pass   http://localhost:7001/sso_demo_weblogic/login;
        }
        ##########以后的省略。
    }

输入http://localhost 能够访问到登陆页面,但是由于后面路径不正确,所以无法正确登陆上去。

四 负载均衡

先查看配置

#######需要负载均衡的内容#############
    upstream localhost_web {  
        server 10.20.12.29 weight=1; 
        server 10.12.123.40 weight=2; 
        }  

    server {
        listen       80;
        server_name  web_app;
        location / {
        #此处需要填写的需要负载均衡的名称,且以http的形式表示。
            proxy_pass http://localhost_web;
        }

    }

说明:
weight为权重,数值越大,访问到的概率越大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值