Nginx 反向代理设置

背景:

1.美国团队开发的web程序部署在一台服务器上,老旧的GlassFish2.x,还是Windows,以下称App1。

2.我们新开发的web程序部署在另一台服务器上,Ubuntu 12.04 server,新版本的GlassFish3.x,以下称App2。

问题:

要想办法把这两个程序伪装成一个站点,这样可以解决两个问题:

1.认证问题,浏览器先从App1登陆,保存cookie。然后再访问App2的时候,会将cookie发过来,App2通过解析cookie内的token,来进行用户身份认证,如果无token,或者无cookie,自动转向App1要求登陆。否则拿到token后,通过server端调用App1的验证API来检查该用户session是否过期。

2.同时支持HTTP/HTTPS,因为登陆等敏感请求需要加密。


来一张图,对理解我的话比较有帮助:



如何配置呢,将配置写在一个独立的conf文件里面,包括两部分,一部分配置HTTP.

  1. server {  
  2.     listen       80;  
  3.     server_name  192.168.1.10;  
  4.   
  5.     access_log /opt/agol_http.log my_log;  
  6.   
  7.     location ^~ /home {  
  8.         proxy_pass http://192.168.1.11;  
  9.         proxy_set_header Host $host;  
  10.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  11.     }  
  12.   
  13.     location ^~ /sharing {  
  14.         proxy_pass http://192.168.1.11;  
  15.         proxy_set_header Host $host;  
  16.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  17.     }  
  18.   
  19.     location /geoflow {  
  20.         proxy_pass http://192.168.1.10:8081/flow;  
  21.         proxy_set_header Host $host;  
  22.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  23.     } 

HTTPS也单独配置一个Server

  1. # HTTPS server                                                                                                                                                                     
  2. server {  
  3.     listen       443 ssl;  
  4.     ssl_certificate      /usr/nginx/conf/server.crt;  
  5.     ssl_certificate_key  /usr/nginx/conf/server.key;  
  6.     server_name  10.112.18.178;  
  7.     access_log /opt/agol_https.log my_log;  
  8.   
  9.     location / {  
  10.         proxy_pass https://192.168.1.11;  
  11.         proxy_set_header Host $host;  
  12.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  13.     }  
  14. }  
这样Nginx看到如果是HTTPS请求,全部转向App1。如果是HTTP请求,则要看URL,根据不同的location,决定转向不同的应用。这个具体情况灵活配置了。


最后在nginx.conf的http设置里面加上

include agol.conf;

即可。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值