由于公司业务的需要,有个项目急需一个服务器,而且带宽必须要高,可伸缩性必须要好,所以购买了云机,[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 64位 IIS7.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重定向,这个对很多人来说可能是小事一桩,但是我饶了几个弯路,所以分享一下;