`
sunxboy
  • 浏览: 2869806 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Apache+Resin的java虚拟主机设置

阅读更多

 

 

  概述

  本文主要是为了做虚拟主机的人准备的,做resin的虚拟主机有几种方式:

  1.缺省情况下,root用户运行resin,最不安全

  强烈不建议这种方式,不过这种方式基本不需要配置

  2.以另外一个用户,例如resin用户来运行resin

  安全一些,类似缺省apache的方式,不过需要配置一些目录设置,否则无法运行

  3.每个虚拟主机一个用户,虚拟主机用户多的时候太麻烦,不过最安全.

  用户之间互不影响.配置相对麻烦一些.

  安装

  resin默认仅提供了源码方式,所以需要编译安装.(有第三方提供了rpm,但还是自己编译好控制和升级).

  resin和apache的连接模块也需要编译,所以还需要apache有apxs程序,一般apache编译的版本才有这个程序,所以我们只好编译安装apache.

  一般用户还需要安装php等等,不在赘述,下面开始安装.

  下载apache 2.0.54,php5.0.5 or php 4.4,resin rpo 3.0.14,放在/temp目录下,并用tar zxvf命令展开.

  编译安装apache,类似命令如下

  ./configure --prefix=/web/apache --with-mpm=worker --enable-so --enable-rewrite

  make

  make install

  注意允许了apache的so模块和rewrite模块,开启apache的worker工作方式,具体请参考apache的文档.如果用户需要其他设置,请浏览configure的帮助. (./configure --help)

  编译php4:

  ./configure --prefix=/web/php --with-apxs2=/web/apache/bin/apxs --with-config-file-path=/web/php --with-mysql

  make

  make install

  指定php安装目录,设定apache的目录和php.ini的目录,并配置mysql.开启其他选项也请看帮助.

  安装后把php.ini-recommend 复制到/web/php/php.ini,然后按照自己的需要修改.

  (主要修改Safe_mode为on等等安全措施)

  php5提示:如果同时安装mysql和mysqli,生成的Makefile会有一个小错误,多了一个-lmysqlclient ,去掉即可. ( http://cn.php.net/mysqli )

  安装jdk:

  下载rpm包安装

  设置JAVA_HOME变量,把jdk/bin目录加入到path里

  并把tools.jar设置到classpath中.classpath里面还要包括当前路径,也就是一个点.

  一般是通过修改/etc/profile设置,可搜索相关文档.

  编译resin:

  ./configure --prefix=/web/resin --with-apxs=/web/apache/bin/apxs

  make

  make install

  resin默认提供了启动脚本,位于contrib目录下,我一般把init.resin.in复制到/etc/init.d/resin,然后使用checkconfig 设置,可以打开这个文件看看如何设置.

  然后打开这个文件,修改JAVA_HOME,RESIN_HOME为实际目录:

  JAVA_HOME=/usr/java/jdk1.5

  RESIN_HOME=/web/resin

  至此,apache,php,resin的默认设置就可以运行了.

  注:resin安装的时候,已经把和apache连接的模块和配置都设置好了,可以打开apache的httpd.conf看看:

  LoadModule caucho_module modules/mod_caucho.so

  ResinConfigServer localhost 6802

  CauchoStatus yes

  其中php 的设置也自动设置好了,如下:

  LoadModule php5_module modules/libphp5.so

  #

  # Cause the PHP interpreter to handle files with a .php extension.

  #

  AddType application/x-httpd-php .php

  # AddType application/x-httpd-php-source .phps

  设置apache

  首先是设置apache的基本属性:

  调整cgi设置,如果你要运行cgi程序: AddHandler cgi-script .cgi .pl

  设置默认编码 AddDefaultCharset GB2312

  DirectoryIndex DirectoryIndex index.htm index.html index.php index.jsp

  连接数:参考文档吧,这个要根据实际情况调整了,注意如果是worker模块,设置worker部分的连接数即可

  邮件地址ServerAdmin

  Group nobody

  为了java web程序的安全,我们在httpd.conf里加入

  <LocationMatch "/WEB-INF/">

  AllowOverride None

  deny from all

  </LocationMatch>

  <LocationMatch "/META-INF/">

  AllowOverride None

  deny from all

  </LocationMatch>

  我们在apache里新增一个虚拟主机:

 

  <VirtualHost *:80>

  ServerAdmin testuser@testuser.com

  DocumentRoot /home/testuser/html

  ServerName www.testuser.com

  ServerAlias testuser.com ftp.testuser.com

  ScriptAlias /cgi-bin/ "/home/testuser/cgi-bin/"

  <Directory /home/testuser/cgi-bin/>

  ##本用户可以运行cgi,其他用户要看httpd.conf的设置了,我是没有默认开启的,只允许特定用户运行cgi

  AddHandler cgi-script .pl .cgi

  </Directory>

  ##把日志放到自己的目录下,这样用户可以看自己的日志了,出了错误好跟踪

  ErrorLog /home/testuser/tmp/log/testuser-error_log

  CustomLog /home/testuser/tmp/log/testuser-access_log common

  </VirtualHost>
 

  注:如果/home/testuser/tmp/log目录权限可以设置为合适的用户权限,方便用户管理日志,例如删除

  为了防止日志过大,还可以浏览logratate,cronolog等程序来设置.例如,安装了cronolog的情况下设置为:

  CustomLog "|/usr/local/sbin/cronolog /home/testuser/tmp/log/access_%m_%d.log" common

  警告:为了用户能删除日志,你可能需要对目录做额外设置(例如777),否则用户是不能删除目录下的文件的. 或者采用定期删除日志的方法也可以.

  设置resin

  新增一个resin用户,为了运行resin,这个用户要求有shell,不能是true或者nologin.假设我们增加了一个用户resin,组也是resin.

  修改/etc/init.d/resin,修改一行:

  USER=resin

  这样默认resin程序就以resin用户的身份运行了,为了运行缺省的程序,需要把resin安装目录的所有owner,group修改为resin.resin,递归修改.

  负载均衡:resin支持设置多个端口启动,来做负载均衡,可以参考相关文档.

 

 <cluster>

  <srun server-id="" host="127.0.0.1" port="6802"/>

  <srun server-id="" host="127.0.0.1" port="6803"/>

  <srun server-id="" host="127.0.0.1" port="6804"/>

  </cluster>
 

 

  对应apache的httpd.conf也要修改:

  ResinConfigServer localhost 6802

  ResinConfigServer localhost 6803

  ResinConfigServer localhost 6804

  因为apache默认已经有access日志了,还可以关闭resin的access日志.

  <access-log path="logs/resinlog/access.log"

  format=’%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"’

  rollover-period="1D"/>

  注释掉这段即可关闭.

  现在我们来配置对应apache的虚拟主机:

 

 <host id=’’>

  <web-app id=’/’ document-directory="/home/testuser/html">

  <work-dir>/home/testuser/tmp/work</work-dir>

  <temp-dir>/home/testuser/tmp/tmp</temp-dir>

  <stdout-log path=’/home/testuser/tmp/resinlog/stdout.log’ rollover-period=’1D’ archive-format="stdout_%m%d.log" />

  <stderr-log path=’/home/testuser/tmp/resinlog/stderr.log’ rollover-period=’1D’ archive-format="stderr_%m%d.log" />

  </web-app>

  </host>
 

 

  注意如果有多个虚拟主机,id需要写上域名,因为目前只有一个虚拟主机,所以id为空就是默认的都访问这个.

  <host id=’www.testuser.com’>

  我们可以看到,这个虚拟主机设置了resin的work-dir和resin-dir,并设置了stdout和stderr日志,都放在用户的目录下.

  如果不设置work-dir的话,resin默认是在WEB-INF下建立一个work目录.

  如果不设置temp-dir的话,resin默认是在WEB-INF下建立一个tmp目录.

  但是用户的目录对resin来说是没权限的,所以要首先建立这些目录,并且设置目录的owner是resin,这样resin程序才能操作.

  (root用户运行情况下不存在此问题)

  两种日志也放到用户的目录下,方便用户调试,除错,日志目录的owner也要设置为resin,否则也无法正常运作.日志设置为一天产生一个,可以根据需要修改.

  警告:为了用户能删除日志,你可能需要对目录做额外设置(例如777),否则用户是不能删除目录下的文件的. 或者采用定期删除日志的方法也可以.

  警告:work,tmp,resinlog目录都是必须要管理员建立的,并设置为resin用户拥有,否则resin无法运行,而且注意目录不应该被web页面访问到.

 

 

分享到:
评论

相关推荐

    Apache + nginx + resin 详细配置

    2. 测试环境隔离:在Apache的VirtualHost配置中,将ServerName设置为127.0.0.1,并在本地主机文件(/etc/hosts)中将域名映射到127.0.0.1,这样确保只有本地机器可以访问这个虚拟主机。这在开发和测试环境中非常常见,...

    apache+resin配置[定义].pdf

    - **添加虚拟主机**:修改`C:\Resin3.0\conf\resin.conf`文件,在文件末尾添加相应的虚拟主机配置。 示例配置: ```xml 域名1" root-directory="."&gt; 域名2" root-directory="."&gt; ``` **配置Apache**: - **...

    linux下的整合apache+mysql+php+resin

    - 对于使用Resin的情况, 需要在Resin的配置文件中定义相应的虚拟主机, 并确保与Apache的配置一致。 #### 五、总结 通过上述步骤, 我们可以在Red Hat AS4上成功整合Apache、MySQL、PHP 和 Resin, 构建一个稳定、高效...

    Apache+Resin做负载均衡 [windows 2003]

    例如,创建一个名为"resin_cluster"的虚拟主机,设置代理规则将请求转发到Resin服务器。以下是一个简单的示例: ```apacheconf *:80&gt; ServerName yourdomain.com ProxyPass / balancer://resin_cluster/ ...

    ACPCHE+RESIN+JDK1.5架设WEB服务器.pdf

    - 为了让Apache监听80端口(HTTP服务默认端口),需要在配置文件中设置`Listen`指令为80,并且配置虚拟主机部分,指定虚拟主机的`DocumentRoot`和`ServerName`。 - Apache作为Web服务器,可以通过`apachectl`脚本...

    apache,resin整合说明

    2. 配置虚拟主机:在httpd.conf或sites-available目录下的相应配置文件中,添加一个新的VirtualHost,指定Resin服务器的IP和端口。例如: ``` *:80&gt; ServerName yourdomain.com ProxyPass / ...

    java-apache-tomcat-resin-nginx-详细配置.docx

    5. 配置虚拟主机:可以通过配置 Tomcat 的 server.xml 文件来设置虚拟主机。 6. web.xml 配置修改:可以通过修改 web.xml 文件来配置 Tomcat 的 web 应用程序。 7. 性能优化:可以通过配置 Tomcat 的 server.xml ...

    resin4.0和apache 2.2搭建服务器

    2. 配置Apache虚拟主机:在Apache的配置文件(如httpd.conf或独立的vhost配置文件)中,设置一个虚拟主机,并启用ProxyPass和ProxyPassReverse指令,将特定的URL路径映射到Resin服务器。 ```apacheconf *:80&gt; ...

    oracleInstall

    3. 设置虚拟主机:在Apache的配置中,为Resin创建一个虚拟主机,指定Resin服务器的IP地址和端口。 4. 配置Resin:在Resin的conf/resin.xml中,设置监听端口,并确保其与Apache配置中的端口一致。 5. 测试配置:重启...

    resin 入门基础教程.pdf

    - 虚拟主机的概念及在 Resin 中的应用方法,包括多个域名指向同一服务器的不同目录。 #### 七、集群配置 - **Resin 集群** - 介绍如何配置 Resin 集群以提高可用性和负载能力,涵盖集群同步、会话复制等关键概念...

    eclipse resin配置

    通常情况下,这个文件位于Resin的安装目录下,包含服务器的各种配置信息,如端口设置、虚拟主机定义等。 - **-Djava.util.logging.manager=com.caucho.log.LogManagerImpl**:设置日志管理器为Caucho提供的实现,这...

    resin-2.1.17

    使用Resin 2.1.17时,用户通常需要编辑`conf/resin.conf`来配置服务器参数,如端口号、虚拟主机、数据源等。然后将web应用程序打包成WAR文件,放入`webapps/`目录下,Resin会自动检测并部署这些应用。 需要注意的是...

    resin-4.0.50

    安装和配置Resin 4.0.50,一般需要修改`conf/resin.conf`,配置服务器端口、虚拟主机、数据源等,并将应用WAR文件或目录部署到`webapps`下。启动服务器后,可以通过HTTP访问Web应用,或者使用管理工具进行监控和调整...

    java服务器配置tomcat,resin,jboss归纳.pdf

    Java服务器配置涉及三个主要...- **虚拟主机配置**:使用`&lt;Context&gt;`节点在服务器上配置多个独立的应用路径。 了解这些配置方法和知识点,有助于管理和优化Java Web应用的运行环境,以满足不同的服务需求和性能要求。

    Resin with IIs.pdf

    - 其中,`id`属性代表域名,`app-dir`则指定该虚拟主机的根目录。 #### 三、Resin高级使用技巧 Resin提供了丰富的命令行选项,用于定制启动参数,以满足不同场景的需求: - `-verbose`:增加日志输出的详细程度。...

    resin-reference-3.0.13文档

    在 Resin 的配置部分,文档主要涵盖了 `resin.conf` 文件的配置细节,包括端口设置、虚拟主机配置、集群以及线程管理等关键配置项。 ##### 1.1 `resin.conf`: 端口、虚拟主机、集群和线程 (Ports, Virtual Hosts, ...

    RedHat Linux网络服务器构架培训教程.doc

    - **步骤**: 安装Resin、配置JVM参数、设置虚拟主机等。 6. **PHP配置** - **目标**: 支持PHP脚本的执行。 - **工具**: PHP。 - **步骤**: 安装PHP、配置PHP模块、集成到Apache等。 #### 五、注意事项 - **安全...

    Linux系统下JSP服务器配置步骤详解

    在Linux系统下配置JSP服务器是一项复杂但至关重要的任务,涉及到多个步骤,包括JDK的安装、Apache服务器的配置、Resin服务器的安装以及环境变量的设置等。本文将详细阐述这一过程,帮助读者理解并顺利完成JSP服务器...

    用Linux搭建全自动的虚假主机(下).pdf

    在本篇技术文章中,我们将继续探讨如何使用Linux操作系统来构建一个全自动的虚假主机环境,主要涉及磁盘限额配置、Apache服务器的安全配置、PHP的安全设置、Zend Optimizer的安装以及Resin服务器的安装与配置。...

Global site tag (gtag.js) - Google Analytics