我在一个数据中心(linode)有一个 cpanel VPS,其中我有一堆客户帐户,我想使用连接到私有 IP 的同一数据中心的另外 2 个 VPS 来平衡负载。
我正在考虑设置这个来平衡负载:
VPS 1:Cpanel、邮件服务器、Apache(代理)。获取请求、公网 IP。VPS
2:Mysql。VPS
3:Tomcat。
现在我的首要任务是设置 VPS 3。
Cpanel 架构通过 apache 加载 Java 模块,包括在虚拟主机定义中有一个 mod_jk,我正在考虑将 servlet 更改为 tomcat VPS,并将其位置更改为类似以下内容:
DocumentRoot IP_OF_VPS:/home/didactac/public_html
但我不确定这是否会成功!
这是 apache 中的一个虚拟主机:
<VirtualHost 173.230.130.64:80>
ServerName danielakosanstore.com
ServerAlias www.danielakosanstore.com
DocumentRoot /home/danielak/public_html
ServerAdmin [email protected]
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/danielakosanstore.com combined
CustomLog /usr/local/apache/domlogs/danielakosanstore.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
## User danielak # Needed for Cpanel::ApacheConf
<IfModule mod_suphp.c>
suPHP_UserGroup danielak danielak
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup danielak danielak
</IfModule>
ScriptAlias /cgi-bin/ /home/danielak/public_html/cgi-bin/
Include "/usr/local/apache/conf/userdata/*.conf"
Include "/usr/local/apache/conf/userdata/*.owner-root"
Include "/usr/local/apache/conf/userdata/std/*.conf"
Include "/usr/local/apache/conf/userdata/std/*.owner-root"
Include "/usr/local/apache/conf/userdata/std/2/*.conf"
Include "/usr/local/apache/conf/userdata/std/2/*.owner-root"
Include "/usr/local/apache/conf/userdata/std/2/danielak/*.conf"
Include "/usr/local/apache/conf/userdata/std/2/danielak/danielakosanstore.com/*.conf"
最后几行包含的配置文件用于加载 servlet:
</VirtualHost>
<IfModule mod_jk.c>
JkMount /*.jsp ajp13
JkMount /* ajp13
JkUnmount /*.php* ajp13
JkUnmount /*.cgi ajp13
JkUnmount /*.shtm* ajp13
JkUnmount /*.pl ajp13
JkMount /servlet/* ajp13
JkMount /servlets/* ajp13
</IfModule>
你们觉得怎么样?我需要能够添加一堆客户端帐户 servlet,或者自动删除它们
非常感谢!
更新,改进我的问题:
本节旨在根据评论中的反馈和量子问题提供有关该问题的更多详细信息:
量子:当 VPS3 上只有一个 Tomcat 实例时,您想要负载平衡什么?“添加一堆客户端-帐户-servlet”是什么意思?
回答: 可能我没有正确使用术语“负载平衡”,您看,我为每个帐户安装一个 Java 应用程序,帐户是基于此 Java 应用程序运行的网站,每个网站都有一个 Linux 用户,http.cnf(apache)中有一个虚拟主机,server.xml 中有一个虚拟主机。Apache 充当当前 VPS 上 tomcat 的代理。现在只有一个 VPS。我需要的是相同的设置,但在不同的机器上运行 tomcat。这样,如果 tomcat 机器的内存不够,我可以设置一台新的 tomcat 机器,将新的客户端放在那里。我称之为负载平衡。但我感觉我没有正确使用这个术语。
答案1
我为每个帐户安装一个 Java 应用程序,帐户是基于此 Java 应用程序运行的网站,每个网站都有一个 Linux 用户,http.cnf(apache)中有一个虚拟主机,server.xml 中有一个虚拟主机。Apache 充当当前 VPS 上 tomcat 的代理。目前只有一个 VPS。我需要的是相同的设置,但在不同的机器上运行 tomcat。
worker.<worker_name>.host
当然,您可以通过将 更改为后端 Tomcat 实例的 IP 地址来实现workers.properties
,如下所示:
worker.worker1.host=backend.Tomcat's.IP.address
我可以将特定客户(网站、虚拟主机、账户……在本例中相同)链接到特定工作人员吗?
是的,你可以。将其JkMount
放入VirtualHost
部分:
<VirtualHost *:80>
ServerName ...
ServerAdmin ...
JkMount /*.jsp ajp13
JkMount /* ajp13
...
</VirtualHost>