虚拟主机(Virtual Host)
概念:同一台机器上搭建属于不同域名或者基于不同IP的多个网站服务技术,可以为运行在同一台物理机器上的各个网站指配不同的IP和端口,也可以让多个网站拥有不同的域名。
根据需求创建虚拟主机
1.需求
同一台主机上运行两套应用程序,通过端口区分(基于端口的虚拟主机)(一套程序是通过50001端口,另外一套是通过50002端口),基于之前搭建的环境上。
2.实施内容
1)因为虚拟主机是基于端口的,所以修改配置文件/etc/httpd/conf/httpd.conf
Listen 80
⇒
Listen 50001
Listen 50002
2)定义虚拟主机的配置文件
第一个虚拟主机的配置文件
/etc/httpd/conf.d/virtual.d/virtual1.conf
<VirtualHost *:50001>
ServerName 192.168.100.29
DocumentRoot "/var/www/html_virtual1"
<Directory /var/www/html_virtual1>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
CustomLog logs/access_virtual1_log combined env=!nolog
ErrorLog logs/error_virtual1.log
ErrorDocument 400 /error/40X.json
ErrorDocument 401 /error/40X.json
ErrorDocument 403 /error/40X.json
ErrorDocument 404 /error/40X.json
ErrorDocument 405 /error/40X.json
ErrorDocument 408 /error/40X.json
ErrorDocument 410 /error/40X.json
ErrorDocument 411 /error/40X.json
ErrorDocument 412 /error/40X.json
ErrorDocument 413 /error/40X.json
ErrorDocument 414 /error/40X.json
ErrorDocument 415 /error/40X.json
ErrorDocument 500 /error/50X.json
ErrorDocument 501 /error/50X.json
ErrorDocument 502 /error/50X.json
ErrorDocument 503 /error/50X.json
ErrorDocument 506 /error/50X.json
Alias /error/ "/var/www/error_virtual1/"
IncludeOptional conf.d/mod_jk_virual1.conf
</VirtualHost>
第二个虚拟主机的配置文件
/etc/httpd/conf.d/virtual.d/virtual2.conf
<VirtualHost *:50002>
ServerName 192.168.100.29
DocumentRoot "/var/www/html_virtual2"
<Directory /var/www/html_virtual2>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
CustomLog logs/access_virtual2_log combined env=!nolog
ErrorLog logs/error_virtual2.log
ErrorDocument 400 /error/40X.json
ErrorDocument 401 /error/40X.json
ErrorDocument 403 /error/40X.json
ErrorDocument 404 /error/40X.json
ErrorDocument 405 /error/40X.json
ErrorDocument 408 /error/40X.json
ErrorDocument 410 /error/40X.json
ErrorDocument 411 /error/40X.json
ErrorDocument 412 /error/40X.json
ErrorDocument 413 /error/40X.json
ErrorDocument 414 /error/40X.json
ErrorDocument 415 /error/40X.json
ErrorDocument 500 /error/50X.json
ErrorDocument 501 /error/50X.json
ErrorDocument 502 /error/50X.json
ErrorDocument 503 /error/50X.json
ErrorDocument 506 /error/50X.json
Alias /error/ "/var/www/error_virtual2/"
IncludeOptional conf.d/mod_jk_virual2.conf
</VirtualHost>
3)为了让apache启动时,加载这两个配置文件,在/etc/httpd/conf/httpd.conf中追加下面的配置
IncludeOptional conf.d/virtual.d/*.conf
4)分别创建两条虚拟主机的文档目录,并在里面放上需要访问的html资源
mkdir /var/www/html_virtual1
virutal1test.html
mkdir /var/www/html_virtual2
virutal2test.html
5)从上面各自虚拟主机的配置文件来看,都定义了各自的mod_jk文件,所以创建mod_jk文件,worker还是使用以前定义好的tomat1.
/etc/httpd/conf.d/mod_jk_virtual1.conf
<IfModule mod_jk.c>
JkMount /virtual1/* tomcat1
</IfModule>
/etc/httpd/conf.d/mod_jk_virtual2.conf
<IfModule mod_jk.c>
JkMount /virtual2/* tomcat1
</IfModule>
6)在tomcat里放上两个war包,一个名叫virutal1,virtual2
7)重启apache,重启tomcat
systemctl restart httpd
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
8)测试apache的静态资源是否能正常访问
http://192.168.100.29:50001/virtual1test.html
结果:正常显示
http://192.168.100.29:50002/virtual2test.html
结果:正常显示
9)确认log
/var/log/httpd/access_virtual1_log
10.0.210.135 - - [03/Aug/2017:15:34:59 +0900] "GET /virtual1test.html HTTP/1.1" 200 53 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
/var/log/httpd/access_virtual2_log
10.0.210.135 - - [03/Aug/2017:15:45:54 +0900] "GET /virtual2test.html HTTP/1.1" 200 53 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
10)通过apache&mod_jk&tomcat访问tomcat的资源
http://192.168.100.29:50001/virtual1/index.jsp
结果:正常显示
http://192.168.100.29.50002/virtual2/index.jsp
结果:正常显示
11)确认log
/var/log/httpd/access_virtual1_log
10.0.210.135 - - [03/Aug/2017:15:52:15 +0900] "GET /virtual1/index.jsp HTTP/1.1" 200 290 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
/var/log/httpd/access_virtual2_log
10.0.210.135 - - [03/Aug/2017:15:52:55 +0900] "GET /virtual2/index.jsp HTTP/1.1" 200 286 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
总结:总体来说,配的很顺利,但是对于一些概念,还需要学习,比如对于ServerName的概念,我就不是特别理解。看到httpd.conf里的解释是这样的解释的
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
If your host doesn't have a registered DNS name, enter its IP address here.
相关推荐
Apache、Tomcat、mod_jk和mod_ssl是构建高效、安全的Java web应用程序服务器环境的关键组件。本配置笔记将深入探讨如何将这些组件整合在一起,实现动态内容的处理和HTTPS安全连接。 首先,Apache HTTP Server作为...
mod_jk.so是Apache的负载均衡模块,它通过Apache与Tomcat之间的通信协议(Jk或JK2)来实现这种协同工作。 首先,我们需要理解Apache2.4和mod_jk.so的关系。Apache2.4是Apache HTTP服务器的第2.4版本,提供了许多...
5. **配置VirtualHost或Location:** 使用`JkMount`指令将特定URL或所有动态请求映射到JK模块,这样请求就会被转发到Tomcat实例处理。 6. **启动和测试:** 重启Apache服务,通过访问网站测试集群是否正常工作。可以...
本压缩包提供了实现Tomcat集群配置所需的Apache服务器和mod_jk模块,具体版本为Apache 2.0.55和mod_jk-apache-2.0.55.so。 Apache HTTP Server是一个开源的Web服务器,它能够处理静态HTML文件和动态内容,如PHP、...
- **编辑 ajp.conf 或者 virtual host 配置**:在 Apache 配置中添加对 mod_jk 的引用,如 `JkMount /app worker1`,这意味着所有 `/app` 开头的请求都将被转发到名为 `worker1` 的 Tomcat 实例。 - **重启 Apache...
- **配置VirtualHost**:在Apache的VirtualHost中设置`JkMount`指令,指定哪些URL请求转发给Tomcat处理。 3. **负载均衡与故障转移** 在worker.properties中,可以通过配置多个worker来实现负载均衡,每个worker...
5. **安装Tomcat**:确保Tomcat已安装并运行,AJP端口(默认8009)处于监听状态,以便接收来自Apache的请求。 6. **测试配置**:完成上述步骤后,重启Apache服务器,然后访问配置的URL,看是否能正确路由到Tomcat并...
《Apache + Tomcat 整合:mod_jk与反向代理详解》 在Web服务器与应用服务器的集成中,Apache HTTP Server(简称Apache)和Tomcat的组合是常见的选择。Apache作为静态资源处理的专家,而Tomcat则擅长处理Java应用。...
4. 在Apache的VirtualHost或Location配置中,设置URL重写规则,让特定的请求通过mod_jk转发到Tomcat。 5. 重启Apache服务器以使更改生效。 通过这种方式,mod_jk.so使得Apache能够作为前端服务器,处理静态内容,而...
5. 更新Apache的VirtualHost配置,添加JKMount指令来指定哪些URL路径应由Tomcat处理。 在Tomcat侧,需要配置server.xml文件中的Connector元素,启用AJP支持。此外,为了监控和管理JK模块,可以安装和配置mod_status...
编辑Apache的`httpd.conf`文件,加载mod_jk模块,并配置虚拟主机指向Tomcat服务。 **步骤四:配置Tomcat** - 修改Tomcat的`server.xml`文件,配置AJP连接器。 - 添加系统服务:通过“控制面板”→“管理工具”→...
本知识点将详细讲解如何通过`mod_jk`模块进行端口整合,以及如何使用`mod_jk-1.2.26-httpd-2.2.4.so`与`apache_2.2.4-win32-x86-no_ssl`和`tomcat-4.1.18-win`版本进行配置。 `mod_jk`是Apache HTTP Server的一个...
### Apache + Tomcat + JK配置负载均衡及虚拟主机详解 #### 一、概述 在现代Web应用开发中,为了提高服务器资源的利用率和系统的可扩展性,常常需要在一个物理服务器上部署多个不同的Web应用程序,每个应用程序可能...
- **mod_jk**: 用于Apache与Tomcat之间的通信 **环境变量配置**: 1. **JAVA_HOME**: 指向JDK的安装路径,例如 `D:\Java\jdk1.8.0_161`。 2. **CLASSPATH**: 设置为 `.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\...
Apache Connector(也称为mod_jk)用于连接Apache和Tomcat,可以从<http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/>获取,务必选择与Apache版本匹配的jk模块,例如mod_jk-1.2.26-httpd-...
从Apache Tomcat Connectors项目(http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/win32/)下载与Apache版本匹配的mod_jk模块,例如jk-1.2.27-httpd-2.2.10.so。将.so文件复制到Apache的...
4. **配置mod_jk**:编辑mod_jk.conf文件,设定工作线程数、连接超时、Tomcat服务器的地址和端口等参数。此外,还需要定义worker,例如`worker.list=worker1`,并设置worker属性,如`worker.worker1.host=your_...
在本方案中,我们将讨论如何在Apache服务器上添加mod_jk模块来实现与Tomcat集群的集成。 Apache HTTP Server是开源的Web服务器,它支持多种模块以增加功能。`mod_jk`是Apache的一个模块,专门用于与Apache Tomcat...
- **mod_jk-1.2.26-httpd-2.0.59.so**:Apache模块,用于Apache与Tomcat之间的通信。 - **JDK 1.4**:Java开发工具包,Tomcat运行的基础。 安装顺序为先安装Apache,再安装Tomcat和其他相关组件。 ##### 2. 配置...
5. **配置VirtualHost**:在Apache的配置中,为每个需要负载均衡的域名或者路径设置一个VirtualHost,并通过`JkMount`指令将特定的URL映射到相应的Tomcat实例。例如: ``` <VirtualHost *:80> ServerName example...