能否在一台主机上搭建2个tomcat服务器运行Java Web项目?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了能否在一台主机上搭建2个tomcat服务器运行Java Web项目?相关的知识,希望对你有一定的参考价值。

我想在一台主机上搭建2个tomcat服务器运行Java Web项目,怎么搭建啊?主机的系统环境是win8,环境怎么配置啊?

也可以将两个javaweb项目放在同一个tomcat运行也是可以的,我就是这么做的,如果两个的话,进入conf里面server.xml修改一下端口,不要重复 参考技术A 一台电脑装一个myeclipse和eclipse 一个工具配置一个tomcat 然后改掉一个tomcat的端口,这样就是2个tomcat服务器了 参考技术B 当然可以 , 修改tomcat端口就行了 , 在tomcat的 conf文件夹下面的 server.xml :
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
每个tomcat 端口紫瑶不一样 , 就可以同时运行 , 这只是一个容器

在一台 Apache 服务器上的单独虚拟主机中运行 Apache mod_php 和 mod_fastcgi

【中文标题】在一台 Apache 服务器上的单独虚拟主机中运行 Apache mod_php 和 mod_fastcgi【英文标题】:Running Apache mod_php and mod_fastcgi in seperate vhosts on one Apache server 【发布时间】:2015-12-04 18:49:16 【问题描述】:

所以,我需要在一台服务器上运行多个 php 应用程序/站点。一个或多个应该使用 apache 和 mod_php5 运行,一个或多个应该能够使用 mod_fastcgi 和 php-fpm 运行。 mod_php5 目前很好,如果我禁用 mod_php5,fastcgi 可以工作,但我很难让它们同时工作。

我认为这可以在 apache 中使用 filesmatch、if.mod_fastcgi 和 if.mod_actions 的某种组合来实现,但我无法弄清楚它是什么。如果需要,我们可以安装执行此操作所需的任何 apache 模块。

如果有适用于 Apache 2.2 或更低版本的不同版本的虚拟主机,并且您也有该 sn-p,或者至少知道我应该做什么,那么超级奖励积分

我不会发布我拥有的所有虚拟主机,因为我知道它们是错误的,但是第一个默认的基于 mod_php 的虚拟主机看起来像这样......

#NameVirtualHost 127.0.0.1:80     < Apache 2.2 or less    
 <VirtualHost 127.0.0.1:80>
   ServerAdmin webmaster@localhost
   ServerName some.site.tld
   DocumentRoot /var/www/some/site/
   <Directory /var/www/some/site/>
     Options Indexes FollowSymLinks MultiViews
     Require all granted
#               Order deny,allow     < Apache 2.2 or less
#               Allow from all     < Apache 2.2 or less
   </Directory>
   ErrorLog /var/log/apache2/error.log
   CustomLog /var/log/apache2/access.log combined
 </VirtualHost>

理想情况下,我希望这些保持不变,如果我们需要更多这些,我们可以添加更多。

我想要的结果是,能够使用类似于第一个配置的方式放入为 mod_php 配置的新虚拟主机,并且还可以放入如下所示的虚拟主机以实现快速 cgi。

# NameVirtualHost 0.0.0.0:80  < Apache 2.2 or Less
<VirtualHost 0.0.0.0:80>
   ServerAdmin webmaster@localhost
   ServerName some.application.tld
   DocumentRoot /opt/some/app/dir/
   ErrorLog /var/log/apache2/error.log
   CustomLog /var/log/apache2/access.log combined
   <IfModule mod_fastcgi.c>
     #     php_admin_flag engine off    < I tried to use this to disable PHP
     AddType application/x-httpd-fastphp5 .php
     Action application/x-httpd-fastphp5 /php5-fcgi
     Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_someapp
     FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_someapp -socket /var/run/php5-fpm_ptbuild.sock -pass-header Authorization
     <Directory /usr/lib/cgi-bin>
       Options Indexes FollowSymLinks MultiViews ExecCGI
       Require all granted
     </Directory>
     <Directory /opt/some/app/dir/>
       #Options Indexes FollowSymLinks MultiViews ExecCGI
       Require all granted
     </Directory>         
   </IfModule>
#    I tried to use the below alongside mod_php, didnt work
#    <IfModule mod_php5.c>
#        php_admin_flag engine off
#        AddType application/x-httpd-fastphp5 .php
#       <Directory /opt/some/app/dir/>
#               Options Indexes FollowSymLinks MultiViews ExecCGI
#               Require all granted
#       </Directory>
#    </IfModule>
</VirtualHost>

如果你能发布第二个虚拟主机,或者告诉我我做错了什么,非常感谢提前。

【问题讨论】:

【参考方案1】:

我们的服务器上有一个类似的设置来运行 2 个版本的 PHP,但在同一个虚拟主机下。本质上,它适用于旧版本的软件,同时过渡到新版本 - 1 通过原始 Apache 配置运行,另一个通过 CGI 运行。 我们是基于目录的,因此略有不同,但我认为它仍然适用于您的情况。

首先,我们将 fastCGI 配置放在一个单独的文件中 /etc/apache2/mods-enabled/fastcgi.conf

<IfModule mod_fastcgi.c>
    #  AddHandler fastcgi-script .fcgi
    FastCgiWrapper /usr/lib/apache2/suexec
    FastCgiIpcDir /var/lib/apache2/fastcgi
    FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate
    ScriptAlias /php-fcgi/ /var/www/cgi-bin/
</IfModule>

然后,在虚拟主机配置中我们有这个:

<VirtualHost *:80>
    ServerName sitename
    ...
    # Original non-CGI site
    <Directory "/sites/webroot/site1/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>

    # FastCGI version
    <Directory "/sites/webroot/site2/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        AddHandler php-cgi .php
        Action php-cgi /php-fcgi/php562.fcgi
        <FilesMatch "\.php$">
            SetHandler php-cgi
        </FilesMatch>
    </Directory>
</VirtualHost>

我认为你需要的关键是 AddHandlerSetHandler 指令使其工作。然后,您应该能够添加尽可能多的具有不同目录或单个虚拟主机的单独站点。

【讨论】:

谢谢哥们,这一切都与处理程序有关。干杯 很高兴听到它起作用了 :) 我们不得不做很多事情才能让这一切都与 PHPFarm 一起工作。

以上是关于能否在一台主机上搭建2个tomcat服务器运行Java Web项目?的主要内容,如果未能解决你的问题,请参考以下文章

在一台物理服务器上搭建VSAN实验测试

如何在一台windows主机上搭建mysql主从复制

在一台 apache 服务器上设置多个 IP 地址

Tomcat虚拟主机

redis 集群搭建

配置apache虚拟主机,实现在一台服务器上运行多个网站