首页 >数据库 >mysql教程 >配置Nginx反向代理Exchange 2007上的OWA

配置Nginx反向代理Exchange 2007上的OWA

WBOY
WBOY原创
2016-06-07 15:05:131678浏览

最后刚刚完成 Ex change 项目正式上线工作,考虑到一些用户的特殊要求,打算将 OWA 发布到公网,考虑到安全因素,不采用端口映射方式,另外也因为一些其它原因,没有采用微软建议方式,采用 ISA 发布。(网上资料很多,已有很多成熟的方案,如无成本等方面原

最后刚刚完成Exchange项目正式上线工作,考虑到一些用户的特殊要求,打算将OWA发布到公网,考虑到安全因素,不采用端口映射方式,另外也因为一些其它原因,没有采用微软建议方式,采用ISA发布。(网上资料很多,已有很多成熟的方案,如无成本等方面原因,建议采用,主要是方案很成熟,省事。^_^

上面提了这么多要求,但是工作还得做,想了下,本质上就是让用户能在公网上能直接访问到OWA,但又不是直接访问到,所以想到这,就是加个中间人角色,让它帮忙把公网用户的要求传给内网服务器,说白了其实就是一反向代理

应用反向代理的软件有很多,squid,nginx等等大大有名,因为nginx现在很流行,且此软件占用资源少,等优点,就在自己喜欢的gentoo上并应用了。

下面给出此代理的部分网络架构图,大家看了就明白了是怎么回事了。

配置Nginx反向代理Exchange 2007上的OWA

下面就正式开始配置工作

Exchange Server Name:  msg114.sunwill.cn

OWA Internat Name: outlook.sunwill.cn

一、系统及nginx安装   ~略,这个很简单的,大家都知道的

 

二、在Proxy上生成ssl证书,这一步很重要,当然,如果已经有申请到证书,就直接拷过来用就行,没必要用自生成的证书。

# mkdir /etc/nginx/ssl.crt

# mkdir /etc/nginx/ssl.key

 

Make sure to:

- Copy your certificate file to: /etc/nginx/ssl.crt/

- Copy your certificate key file to: /etc/nginx/ssl.key/

证书生成过程,大家可以在网查到,网上也有很多教程,只要生成了证书,放到上面两个目录中就行,nginx进行代理转发时用得到

 

三、就是配置OWA反向代理了,配置文件如下所示

edward@jt-it001:~$vim /etc/nginx/conf.d/owa.conf

server {
        Listen       80;
        server_name Outlook.sunwill.cn;

        # 将任何 HTTP 请求重定向到 HTTPS
        rewrite ^(.*) https://outlook.sunwill.cn$1永久;
        error_log  /var/log/nginx/outlook.sunwill.cn-owa-error.log;
        access_log /var/log/nginx/outlook.sunwill.cn-owa-access.log;
        }

服务器 {
        听       443;
        server_name Outlook.sunwill.cn;

        auth_basic      "sunwill";
       auth_basic_user_file    nginx_passwd;

        #默认从“/”重定向到“/owa”
        rewrite ^/$ https://outlook.sunwill.cn/owa permanent;

        # 启用 SSL
        ssl                      on;
ssl_certificate         /etc/nginx/ssl.crt/outlook.sunwill.cn.crt;
        ssl_certificate_key     /etc/nginx/ssl.key/outlook.sunwill.cn.key;
        ssl_session_timeout     5m;

        # 设置全局代理设置
        proxy_read_timeout      360;

        proxy_pass_header       日期;
        proxy_pass_header       服务器;

        proxy_ set_header        主机 $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        location /owa      { proxy_pass https://msg114.sunwill.cn/owa; }
        位置 /exchange { proxy_pass https://msg114.sunwill.cn/exchange; }
        位置 /exchweb  { proxy_pass https://msg114.sunwill.cn/exchweb; }
        位置 /public   { proxy_pass https://msg114.sunwill.cn/public; }
        位置 /Microsoft-Server-ActiveSync { proxy_pass https://msg114.sunwill.cn/Microsoft-Server-ActiveSync; }

        error_log /var/log/nginx/outlook.sunwill.cn-owa-ssl-error.log;
        access_log /var/log/nginx/outlook.sunwill.cn-owa-ssl- access.log;
        }

最后一点,因为机器是放在DMZ中,所以有可能,其实也没有必要让代理访问内网的DNS服务器,直接配置系统的 /etc/hosts文件即可。让Proxy把资源反向代理正确到达服务器。

 echo "192.168.103.200    msg114.sunwill.cn   msg114">> /etc/hosts

 

最后一些说明,

1.公网域名outlook.sunwill.cn指向代理的公网地址

2.安全方面的一些考量,老生常谈了,服务器开启防火墙,只对外开户指定端口,服务器只运行需要的服务

3.自建证书是因为nginx有启用ssl,所以需要,可以直接用linux上自建的证书,这个证书不一定要与交换服务器上的证书一样,当然如果有申请正式的证书,肯定是用这个了

4.host记录一定要有,当然你愿意在DMZ区的防火墙上开户至内网的DNS查询,也可以,只是降低了相关安全性而已。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn