惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
N
Netflix TechBlog - Medium
腾讯CDC
C
Check Point Blog
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
S
SegmentFault 最新的问题
F
Fortinet All Blogs
美团技术团队
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
F
Full Disclosure
Recorded Future
Recorded Future
D
DataBreaches.Net
博客园 - 【当耐特】
Martin Fowler
Martin Fowler
J
Java Code Geeks
I
InfoQ
Y
Y Combinator Blog
A
About on SuperTechFans
AI
AI
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
W
WeLiveSecurity
M
MIT News - Artificial intelligence
雷峰网
雷峰网
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Schneier on Security
Schneier on Security
The GitHub Blog
The GitHub Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Docker
Recent Commits to openclaw:main
Recent Commits to openclaw:main
量子位
V2EX - 技术
V2EX - 技术
Project Zero
Project Zero

博客园 - 刘民

系统自用车图标 广州番禺翠湖山庄小区规划图 基于.net开发平台项目案例集锦 【转载】如何利用TortoiseCVS连接sourceforge.net的cvs服务器 Mapserver/Ka-map在桌面Linux下的实验环境搭建笔记 关于存储过程中一个参数表示多个查询条件使用方法的简单处理 html代码元素列表说明及HTML标记参考手册 在线生成FLASH/CSS/DHTML/Java Script(导航菜单、按钮、滚动条) 在线生成FLASH/CSS/DHTML/Java Script(导航菜单、按钮、滚动条) 网页配色方案 〔转载〕C Java PHP Perl Python 的程序代码美化工具 【转载】常备JS操作 [转]有关UNICODE、ANSI字符集和相关字符串操作的总结! - 刘民 - 博客园 转载:IIS6.0服务器无法访问解决方案总结 小知识:常用到的软件或服务及其使用的端口 [转载]一位湖北大学的学生作品,看后久久不能平静 GeoServer翻译计划报道 Dev--Building [转载]网页脚本_title样式 - 刘民 - 博客园
【转载】Windows平台上jsp虚拟主机环境的架设——Windows2003+IIS6+J2SDK1.4.2+Resin2.1.16
刘民 · 2005-11-30 · via 博客园 - 刘民

通常在Windows上工作,这次要架设jsp虚拟主机运行环境,查看了一下网上

所能找到的资料,基本没有能用的,因为我需要的是能够使IIS同时既支持.asp又支持.jsp而且又可以做虚拟主机。

互相隔离,且运行在80端口。反正搜索出一堆,参考一下,自己搞吧。

一个一个找,这里面需要很多东西,不要怕麻烦,先准备好:

1、操作系统,我工作的环境是Window2003中文版。

2、Web服务器,我使用的是系统自带的IIS6。

3、JAVA处理平台,这里用的是JAVA 2 SDK,SE v1.4.2_06版。

4、jsp/Servlets运行平台,我选择的是Resin 2.1.16版,因为据说Resin比Tomcat运行效率高10倍以上,而关于

Resin的版本需要注意的是,我听说Resin 2.x属于免费版本,而3.x则是收费版本,所以选择Resin 2.1.16版。呵呵。

没东西了,开始。

一、安装JAVA 2 SDK

不做JAVA开发,安装一个标准环境就可以了,去java.sun.com,网页右边有快速导航,直接去下载好了,有中文版的。

我的安装文件名是:j2sdk-1_4_2_06-windows-i586-p.exe ,不提供URL了,自己找去。

运行安装,出现界面:

然后选择安装路径,全部安装好,自己操作,很简单的。

我装在C:\JDK目录下。

接下来设置环境变量,这一步很重要,别忘了:

JAVA_HOME = C:\JDK

CLASSPATH = C:\JDK\LIB\tools.jar;C:\JDK\LIB\dt.jar

Path 路径里添加 C:\JDK;C:\JDK\bin

二、安装jsp/Servlets运行平台,Resin

哪里找?下载嘛,去www.caucho.com,上去就找Download,下载最新版本就好了。

我用的文件名:resin-2.1.16.zip,解压缩到C:\resin目录

记得立即做好下面这一步,设置Resin的环境变量,我总是在这里忘了,最后系统找不到resin在哪里,当然不成功了。

RESIN_HOME = C:\resin

接下来我们继续,运行C:\resin\bin\httpd.exe

这时候等待,然后出来了2个窗口,仔细看清楚。需要注意的是,启动Resin Web 服务器和关闭服务器

都要使用小的这个窗口来操作,不要直接把后面的那个大的窗口给咔嚓掉哦。

这时候,Resin服务的终端输出上可以看到,http listening to *:8080

这表明Resin自带的web服务已经运行在本机的8080端口上了。

验证一下:

到这里,Resin服务器已经架设完毕,如果只自己做测试jsp或者服务器跑这么一个网站的话

完全足够用了。当然,总是访问8080端口也不是很方便,自己可以手工修改一下。

打开C:\resin\conf\resin.ini文件:

查找<http port='8080'/>,这个是修改端口的

修改站点默认目录也有2种改法,现在系统用的是C:\resin\doc下的内容

在配置文件里面只要写相对路径doc就可以了。

也就是<doc-dir>doc</doc-dir>中间的doc这个地方。

看见没有?

是的,另外<http port='8080'/>这里修改端口就可以了。

但是、、、 呵呵,谁让我还不满足呢。

三、将Resin挂接进IIS

我先把IIS6装起来,Win2003的好处就是不用的东西平时全都不开,呵呵,真不错。

按步骤进行:

在C盘建立C:\web\jspsite目录。这个就是jsp网站的主目录。

然后在目录下创建一个测试用的test.jsp文件。

输入以下内容:

<HTML>
<HEAD>
<TITLE>Jsp Simple Example</TITLE>
</HEAD>
<BODY>
<% out.println("Hello, world!"); %>
</BODY>
</HTML>

接着,在C盘建立C:\web\dllrun目录。

把C:\resin\libexec目录下的isapi_srun.dll 复制到C:\web\dllrun目录下。

至于为什么要把dll复制过去,原因就是jsp的解析是要通过Resin提供的第三方的isapi接口进行的。

平时客户端提交URL的时候,只要发现是.jsp,IIS将把.jsp丢给iis_srun.dll来执行。

后面这个目录还要再用,继续往下走:

启动IIS6.0,首先在Web服务扩展里面添加允许.jsp后缀的Web服务扩展。

扩展名什么都随意填写,我这里输入jsp。

这是Windows2003里面IIS6.0增强的安全功能,你可以允许服务器上有哪些服务扩展是允许的,哪些是禁止的。

允许JSP。

为了看得更清楚,我们建立一个新的站点。

打开站点属性,在ISAPI筛选器里面添加新的筛选器,名称随意,这里输入jsp,

再输入可执行文件,也就是刚才说的resin挂接IIS用的ISAPI过滤器,输入

C:\web\dllrun\isapi_srun.dll

确认后,要注意一点,就是刚刚挂接进去的dll不会立即生效,优先级也显示*未知*

没有关系,不用理会。继续往下走。

下面我们需要做的就是比较重要也很复杂的事情了,也就是修改Resin的配置文件。

仔细研究C:\resin\conf\samples下的配置文件的参考,

尤其是要研究iis.conf 和 virtual_host.conf

下面说一下我的计划,我计划是这样,建立一个带主机名的网站,这样来模拟真实服务器

环境中,虚拟主机的情况。

那么我计划建立一个jsp网站,abu.com 指向我的IP 127.0.0.1

而127.0.0.1直接访问,是IIS默认的asp网站。

如果这两个都能访问,那么表明,我们的目的已经达到了。

为了能够在本地实现访问abu.com的时候能够解析到127.0.0.1 我修改本机的hosts文件

接下来,我修改c:\resin\conf目录下的配置文件resin.conf

这里非常关键,但其实最重要的就两个地方。

将<doc-dir>注释掉,将Resin自带的8080端口运行的服务注释掉<http port='8080'/>

加入<http-server app-dir='C:\resin\doc'> 这里的app-dir是缺省路径,假如Resin自带的web

运行的话,缺省就是这个目录。

和下面这里:

仔细看<host>中间的这部分,这是建立虚拟主机的关键,每次增加虚拟主机就需要修改这个部分,

每个站点用<>括起来。

配置文件基本配好了。

下面添加一个resin.ini文件到先前建立的dllrun目录

添加内容

ResinConfigServer localhost 6802
CauchoStatus yes

意思就是当调用isapi_srun.dll的时候读取相关配置

回到IIS里面,将主机头名添加进去。

给虚拟主机用户添加账号。

加入Guests组 

然后给对应的目录设定权限:

给C:\web\jspsite目录添加刚才用户的权限,注意需要给读写都给。

给c:\web\dllrun目录刚才那个用户的读权限:

在IIS6.0里面的应用程序池中间添加一个新的池

名字叫jspAppPool,然后给这个池 应用程序池标识给予SYSTEM权限。

其实这里可以给更低一点的权限的,有心的朋友可以自己研究一下。

把JSP的网站加入到这个池中方便集中管理。

在jsp的网站上添加一个虚拟目录,目录名为scripts,并且给予可执行的权限。

最后别忘了给这个网站的运行权限设定为刚才的jsp_user用户。

重启Resin,重启IIS。

检查Resin有没有挂接进IIS的办法就是看ISAPI筛选器

如果状态是绿色箭头,表示已经被系统挂接成功。

然后浏览abu.com访问test.jsp文件

而asp网站也同时可以运行