开发者社区> 问答> 正文

从一个云盲到购买云机配置IISphp,IISJSP环境记录

由于公司业务的需要,有个项目急需一个服务器,而且带宽必须要高,可伸缩性必须要好,所以购买了云机,[font='Microsoft Yahei', serif]Windows 2008 64 位版本。
我选择阿里云的几个原因有:
[font='Microsoft Yahei', serif]1 ,公司也有自己的服务器,托管在;联通机房里,带宽是共享[font='Microsoft Yahei', serif]100M ,访问速度不理想,而且从联通访问会比较快,别的网络访问会很慢;
[font='Microsoft Yahei', serif]2 ,租金昂贵,一年的租金就购买好几个阿里云的服务器,更别说算买服务器的钱了;
[font='Microsoft Yahei', serif]3 ,阿里云机器扩展很方便,公司那个服务器,加[font='Microsoft Yahei', serif]CPU ,加内存条,都很麻烦;
[font='Microsoft Yahei', serif]4 ,阿里云可以建快照,可以回滚,公司服务器曾经就崩溃好几次,每次崩溃都要跑去联通机房,而且还要带足了证明过去,路途遥远,很劳累;
[font='Microsoft Yahei', serif]5 ,阿里云备案非常快,在公司服务器上想备案,机器麻烦,有一个域名备案了两个月都没有备案下来。
[font='Microsoft Yahei', serif]6 ,阿里云有云监控,可以很好的监控服务器的情况,公司服务器每次都是宕机了,或者访问不了了,才会发现有问题;
我看中了阿里云服务器可以提供直接可用的环境镜像,最着急的那个项目是个[font='Microsoft Yahei', serif]php 的工程,我是[font='Microsoft Yahei', serif]java 研发六年的程序员,没有配置过[font='Microsoft Yahei', serif]IIS+PHP 的环境,所以果断选择了[font='Microsoft Yahei', serif] ASP/.NET 运行环境(Windows2008 64IIS7.0 环境[font='Microsoft Yahei', serif];


[font='Microsoft Yahei', serif]
选择[font='Microsoft Yahei', serif]Windwos 是因为项目太着急了,又是[font='Microsoft Yahei', serif]php 项目,怕选择[font='Microsoft Yahei', serif]Linux 有些环节会不方便;本人是非常喜欢[font='Microsoft Yahei', serif]linux 的;
我有自己掏腰包买了主机宝[font='Microsoft Yahei', serif]Windws 版本,主机宝有很好用的功能,自动配置[font='Microsoft Yahei', serif]IIS+PHP 环境,所以选用了主机宝;(有人可能会问,为什么不直接买带主机宝的镜像还要自己花[font='Microsoft Yahei', serif]30 元买呢?[font='Microsoft Yahei', serif] 是因为带主机宝的镜像安装以后,主机宝是安装在[font='Microsoft Yahei', serif]C 盘里的,也就是说以后你的所有站点,[font='Microsoft Yahei', serif]ASP 跟[font='Microsoft Yahei', serif]PHP 的站点,都会在[font='Microsoft Yahei', serif]C 盘底下,不能迁移,由于阿里云的系统盘不能升级,所以后期随着项目的增大,不能迁移,会很麻烦,所以自己安装了主机宝)
阿里云服务器购买之后我又去买了主机宝,根据主机宝视频[font='Microsoft Yahei', serif] 安装配置了[font='Microsoft Yahei', serif]PHP 环境,所有数据库与网站的目录都指向了[font='Microsoft Yahei', serif]D 盘(数据盘),这回安心了很多,项目部署上线,[font='Microsoft Yahei', serif]5M 的带宽访问速度很让人满意;
但是公司是做[font='Microsoft Yahei', serif]java 方面的研发的,所以服务器不只要支持[font='Microsoft Yahei', serif]IIS+PHP ,还需要支持[font='Microsoft Yahei', serif]IIS+tomcat 的环境,因为公司考虑废弃托管的那个服务器,要把所有的应用都转移到阿里云服务器上;
我就开始配置了[font='Microsoft Yahei', serif]IIS+tomcat 的通过域名可以访问不同的[font='Microsoft Yahei', serif]tomcat 的工作,网上资料很多,但是自己配置着实费了一把劲,我准备跟大家分享一下我的配置过程;
1,在D盘跟目录建个tomcat_server目录,结构如下:

其中tomcat1的server.xml为
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />
  <ListenerclassName="org.apache.catalina.core.JasperListener" />
  <ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <ListenerclassName="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Resource name="UserDatabase"auth="Container"
             type="org.apache.catalina.UserDatabase"
             description="User database that can be updated and saved"
             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
             pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector port="8080"protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
    <Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina"defaultHost="localhost">
      <RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>
      <Host name="localhost"appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
</Server>
其中tomcat2的server.xml为
<?xml version='1.0' encoding='utf-8'?>
<Server port="8006" shutdown="SHUTDOWN">
  <ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />
  <ListenerclassName="org.apache.catalina.core.JasperListener" />
  <ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Resource name="UserDatabase"auth="Container"
             type="org.apache.catalina.UserDatabase"
             description="User database that can be updated and saved"
             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
             pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector port="8081"protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
    <Connector port="8010"protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina"defaultHost="localhost">
      <RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>
      <Host name="localhost"appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
</Server>
2,tomcat_server [font="]目下建立workers.properties文件,内容如下:
worker.list=tomcat1,tomcat2
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
3,tomcat_server [font="]目下建立uriworkermap.properties文件,内容如下:
# 当前域名下的所有请求都转发给ajp13w工作站处理
/www.test.com.cn/*=tomcat1
/weixin.test.com.cn/*=tomcat2
4,tomcat_server 目下建立tomcat_IIS.reg文件,然后双击运行,内容如下(注意:我这里是64位的操作系统,要是32位去掉Wow6432Node路径):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache SoftwareFoundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect-1.2.27.dll"
"log_file"="E://tomcat_server//isapi.log"
"log_level"="debug"
"worker_file"="E://tomcat_server//workers.properties"
"worker_mount_file"="E://tomcat_server//uriworkermap.properties"

5
,在IIS管理器中的“ISAPI和CGI限制”里面右键添加isapi_redirect.dll,并设定“允许执行扩展路径”,描述名可取jakarta(isapi_redirect.dll文件可以去网上下载)




6 ,在Default Web Site上右键添加虚拟目录,别名可取jakarta,路径指向tomcat_server目录,即isapi_redirect.dll所在目录。

[font="]

7
接着单击Default Web Site,选择ISAPI筛选器,并右键添加筛选器,名称可取jakarta,可执行文件选择isapi_redirect.dll。





8 ,然后点击jakarta虚拟目录,双击“处理程序映射”选择“编辑功能权限...”将所有权限选上


9, 然后重启IIS,启动tomcat  
** 由于在uriworkermap.properties文件里配置了/www.test.com.cn/*=tomcat1,所以直接访问resinfo.com.cn的请求不会被tomcat获取,需要301重定向
下载rewrite_x64_zh-CN.msi ,是微软提供的URL重写组件(我用了rewrite_x64_zh-CN.msi,可以自己去网上下载),安装成功后在IIS中会出现  


然后编辑Default Web Site的web.config文件
添加如下代码
[font="]<?xml version="1.0"encoding="UTF-8"?>
[font="]<configuration>
[font="]<system.webServer>
[font="] <rewrite>
[font="]  <rules>
[font="]    <rule name="Resinfo [font="]域名 301重定向"patternSyntax="Wildcard" stopProcessing="true">
[font="]    <match url="*" />
[font="]    <conditions>
[font="]    <addinput="{HTTP_HOST}" pattern="test.com.cn" />
[font="]    </conditions>
[font="]    <actiontype="Redirect" url="http://www.test.com.cn/{R:0}" />
[font="]    </rule>
[font="]  </rules>
[font="] </rewrite>
[font="]</system.webServer>
[font="]</configuration>
[font="]其实上述内容完全在URL重写模块填写,我由于不太熟悉怎么配置,直接手写了.


最终解决了IIS+tomcat通过域名转发的配置,而且还配置了301重定向,这个对很多人来说可能是小事一桩,但是我饶了几个弯路,所以分享一下;





展开
收起
苏日塔拉图 2014-06-05 17:55:43 15211 0
3 条回答
写回答
取消 提交回答
  • Re从一个云盲到购买云机配置IISphp,IISJSP环境记录
    不错不错~
    2014-12-27 16:09:25
    赞同 展开评论 打赏
  • 支持一个~
    2014-07-03 22:42:38
    赞同 展开评论 打赏
  • 重新编辑一下?
    2014-06-09 14:42:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载
阿里云数据库案例集下载 立即下载
ECS块储存产品全面解析 立即下载