一个虚拟主机是一个为IP地址在DNS注册的可选择的名字。一个ip地址可以很多这样选择的名字。多址主机,是一个机器有多个网络接口,每个ip地址有一个不同的名字。这也叫做“虚拟主机“。本质上,“虚拟主机“涉及到DNS注册名字到IP地址的解析 - 多个IP地址可以解析到同一个IP地址,一个或多个IP地址可能在同一个物理机器上。Jetty用户经常想配置他们的应用程序而考虑这些不同的虚拟主机。通常是一个IP地址,有很多DNS解析的名字指向它,一个布置在上面的程序所有的名字都可以访问到它。另一种可能性就是不同的虚拟主机服务于不同的应用程序。让我们检查这种可能性。
配置虚拟主机
当我们配置一个应用程序的时候,我们可以提供一个可以访问的IP地址和名字的列表,假设我们有一个机器有如下的IP地址和DNS解析的名字:
333.444.555.666
127.0.0.1
www.blah.com
www.blah.net
www.blah.org
假设我们有一个web程序,xxx.war我们想让这个程序服务所有上面的名字和IP地址,那我们将会这样配置web应用程序:
- <New class="org.mortbay.jetty.webapp.WebAppContext">
-
<Arg><Ref id="contexts"/></Arg>
-
<Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>
- <Arg>/xxx</Arg>
-
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
-
<Set name="VirtualHosts">
-
<Array type="java.lang.String">
-
<Item>333.444.555.666</Item>
-
<Item>127.0.0.1</Item>
- <Item>www.blah.com</Item>
- <Item>www.blah.net</Item>
- <Item>www.blah.org</Item>
- </Array>
- </Set>
- </New>
假设我们已经配置了一监听8080端口的连接器,下面的所有地址都可以访问这个应用程序:
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx
为不同的虚拟主机配置不同的程序
这个通过为每个web程序提供不同的虚拟主机列表来完成。举个例子,假设我们有个机器有如下的DNS名字和IP地址:
333.444.555.666
127.0.0.1
www.blah.com
www.blah.net
www.blah.org
777.888.888.111
www.other.com
www.other.net
www.other.org
假设我们有另一个web程序,zzz.war。我们想xxx.war还想上面的配置,但是zzz.war配置成只能从777.888.888.111, www.other.com, www.other.net 和 www.other.org来访问:
- <!-- webapp xxx.war -->
-
<New class="org.mortbay.jetty.webapp.WebAppContext">
-
<Arg><Ref id="contexts"/></Arg>
-
<Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>
- <Arg>/xxx</Arg>
-
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
-
<Set name="VirtualHosts">
-
<Array type="java.lang.String">
-
<Item>333.444.555.666</Item>
-
<Item>127.0.0.1</Item>
- <Item>www.blah.com</Item>
- <Item>www.blah.net</Item>
- <Item>www.blah.org</Item>
- </Array>
- </Set>
- </New>
-
- <!-- webapp zzz.war -->
-
<New class="org.mortbay.jetty.webapp.WebAppContext">
-
<Arg><Ref id="contexts"/></Arg>
-
<Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>
- <Arg>/zzz</Arg>
-
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
-
<Set name="VirtualHosts">
-
<Array type="java.lang.String">
-
<Item>777.888.888.111</Item>
- <Item>www.other.com</Item>
- <Item>www.other.net</Item>
- <Item>www.other.org</Item>
- </Array>
- </Set>
- </New>
程序仍然在下列地址可用:
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx
但是现在程序zzz.war在下列地址可用:
http://777.888.888.111:8080/zzz
http://www.other.com:8080/zzz
http://www.other.net:8080/zzz
http://www.other.org:8080/zzz
为不同的虚拟主机配置不同的程序,但是有相同的上下文路径
在上面的例子中,我们不只让程序zzz.war在这些虚拟主机上可用,也同时确定了上下文路径zzz,同时我们其它的程序也是在不同的虚拟主机和不同的上下文上可用。如果我们想让这些虚拟主机使用相同的上下文改怎么办呢?非常简单, 我们仅仅需要为每个程序提供相同的上下文路径,保留以上其它定义就可以了:
- <New class="org.mortbay.jetty.webapp.WebAppContext">
-
<Arg><Ref id="contexts"/></Arg>
-
<Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>
- *<Arg>/</Arg>*
-
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
-
<Set name="VirtualHosts">
-
<Array type="java.lang.String">
-
<Item>333.444.555.666</Item>
-
<Item>127.0.0.1</Item>
- <Item>www.blah.com</Item>
- <Item>www.blah.net</Item>
- <Item>www.blah.org</Item>
- </Array>
- </Set>
- </New>
-
-
<New class="org.mortbay.jetty.webapp.WebAppContext">
-
<Arg><Ref id="contexts"/></Arg>
-
<Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>
- *<Arg>/</Arg>*
-
<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
-
<Set name="VirtualHosts">
-
<Array type="java.lang.String">
-
<Item>777.888.888.111</Item>
- <Item>www.other.com</Item>
- <Item>www.other.net</Item>
- <Item>www.other.org</Item>
- </Array>
- </Set>
- </New>
现在, xxx.war程序可在如下地址访问:
http://333.444.555.666:8080/
http://127.0.0.1:8080/
http://www.blah.com:8080/
http://www.blah.net:8080/
http://www.blah.org:8080/
而zzz.war程序可在如下地址访问:
http://777.888.888.111:8080/
http://www.other.com:8080/
http://www.other.net:8080/
http://www.other.org:8080/
<!-- Attachments -->
分享到:
相关推荐
通过配置`VirtualHost`和`VirtualHost.ContextHandler`,可以实现基于域名或IP地址的不同Web站点。 #### 十、管理服务器 **10.1 服务器日志管理** Jetty提供了丰富的日志记录功能,可以通过配置文件指定日志级别...
12. **虚拟主机**:Jetty允许在单个服务器上配置多个虚拟主机,每个主机可以对应不同的域名或IP。 13. **服务器管理** - 日志管理:控制日志输出和格式。 - 请求日志:记录HTTP请求详情。 - 实时状态:查看...
| 主机IP | 集群通信端口 | 消息端口 | 控制台端口 | 节点目录 | | --- | --- | --- | --- | --- | | 192.168.1.111 | 62621 | 61616 | 8161 | /usr/local/activemq-cluster/node1 | | 192.168.1.111 | 62622 | ...
当主机正常工作时,备机将侦听主机的心跳包,如果主机宕机,备机将接管虚拟 IP 地址,继续提供服务。 三、Keepalived 配置 在本文中,我们使用 Keepalived 作为高可用性解决方案。Keepalived 的配置文件中包括全局...
- **虚拟主机配置**:通过创建新的server块,设置不同的监听端口或基于主机名来处理不同站点的请求。 - **URL重写**:使用`rewrite`指令进行URL规则匹配和转换,实现动态请求到静态资源的映射。 - **缓存管理**:...
在Linux上,Apache的虚拟主机配置文件通常位于`/etc/apache2/sites-available/`目录下,通过创建和编辑`.conf`文件来设置每个虚拟主机的详细信息,如绑定的域名、文档根目录、访问权限等。激活配置后,虚拟主机将在...
在每台服务器的`etc/hosts`文件中,添加其他服务器的主机名和IP映射,以便相互识别。 #### 1.2.3 配置免登录SSH公钥 在所有服务器上配置SSH免密登录,以简化集群管理。生成公钥并将其添加到所有服务器的`~/.ssh/...
7. **安全考虑**:确保每个虚拟主机配置都有严格的访问控制,比如限制只允许特定IP地址访问,使用HTTPS加密通信,并定期更新Nginx以获取安全补丁。 8. **负载均衡**:Nginx可以配置为负载均衡器,将请求分发到多个...
在二级域名系统中,需要配置DNS服务器,设置CNAME记录或者其他类型的记录,以实现二级域名到主域名的映射。同时,还需要理解HTTP协议,它是Web通信的基础,用于传输网页数据。 三、JAVA 虽然标题中提到了JAVA,但在...
4. **网络配置**:IP地址、端口、网络接口等。 5. **已部署的应用信息**:包括WAR文件名、应用上下文路径等。 6. **库版本**:服务器上已安装的JAR文件及其版本,比如Spring、Hibernate等框架。 **使用JSP探针的...
- `network.host`: 设置网络主机地址为服务器 IP 地址 `10.10.20.63`。 - `thread_pool.bulk.queue_size`: 设置批量队列大小为 1000。 - `http.port`: 设置 HTTP 端口为 9200。 - `discovery.zen.ping.unicast....
配置虚拟主机名、IP地址和绑定,确保每个网站的唯一性。 7. **配置和管理HTTPS网站**: - 申请SSL证书:为了实现HTTPS,你需要从权威的证书颁发机构购买或申请SSL证书,用于加密网站数据并验证服务器身份。 - ...
5. **配置服务器环境**:在服务器上,可能需要配置Servlet容器,比如设置虚拟主机、部署描述符(web.xml)等。根据服务器提供商的不同,这可能需要通过控制面板或者手动编辑服务器配置文件来完成。 6. **测试部署**...
通过配置Host或Context元素,限制特定IP地址或网络段的访问。 **11. TOMCAT访问日志记录** 使用`%h %l %u %t "%r" %>s %b`格式记录HTTP请求日志,可通过server.xml中的Valve元素定制。 **12. TOMCAT状态验证** ...
- 考虑在Linux服务器上配置防火墙规则,只允许特定IP或端口访问,以增强服务器安全性。 - 优化传输速度,例如,开启服务器的SSH压缩选项,或者考虑使用rsync同步文件,以减少网络延迟。 6. **监控与日志**: - ...
9. **基于名称的虚拟主机**:允许多个域名共享同一IP地址和端口,通过Host元素在server.xml中配置。 10. **TOMCAT IP访问控制**:可以通过配置访问控制列表限制特定IP的访问。 11. **TOMCAT访问日志记录**:日志...
5. **配置选项**:Nginx的配置文件(通常为`nginx.conf`)允许用户自定义服务器行为,包括设置监听端口、定义虚拟主机、配置缓存策略等。 6. **反向代理**:Nginx的强大功能之一是其反向代理能力,可以将来自客户端...
默认情况下,Openfire使用内置的Jetty服务器和H2数据库,但也可以根据需求连接到MySQL、PostgreSQL或其他兼容的数据库系统。 安装完成后,通过Web管理界面进行管理。访问http://localhost:9090(或根据安装时配置的...
DHCP(动态主机配置协议)自动分配、回收和管理网络设备的IP地址。学生需要理解DHCP的工作流程,包括发现、提供、请求和确认阶段,以及DHCP服务器如何分配IP地址、子网掩码、默认网关和DNS服务器等网络配置信息。 ...