tomcat部署、tomcat虚拟主机及tomcat多实例

这篇具有很好参考价值的文章主要介绍了tomcat部署、tomcat虚拟主机及tomcat多实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Tomcat概述

tomcat是什么?

什么是 servlet?

什么是 JSP?

Tomcat 功能组件结构

Container 结构分析

Tomcat 请求过程

二、Tomcat部署

1、关闭防火墙和selinux,并将Tomcat所需软件包传到/opt目录下

2、安装JDK

3、设置JDK环境变量

4、安装Tomcat,解压tomcat安装包,并将解压出来的文件复制或移动到安装目录

5、启动Tomcat

6、测试

三、Tomcat 虚拟主机配置

1、创建 kgc 和 benet 项目目录和文件

2、修改Tomcat主配置文件server.xml

3、启动服务

4、测试

四、Tomcat多实例

多实例的实现


一、Tomcat概述

Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。
Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者Nginx,所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器,单独运行在后端。

Tomcat 由一系列的组件构成,其中核心的组件有三个:
(1)Web 容器:完成 Web 服务器的功能。
(2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。
(3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。

tomcat是什么?

因此 Tomcat 是 Web 应用服务器,也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器,负责处理客户请求,把请求传送给 Servlet,并将 Servlet 的响应传送回给客户。

什么是 servlet?

Servlet 是Java Servlet 的简称,可以理解为是一个服务连接器,是用 Java 编写的服务器端程序,具有独立于平台和协议的特性, 简单的理解:servlet 就是一个中间件,包含了接口和方法,将客户端和数据库连接,从而实现动态网页的创建。

什么是 JSP?

JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 <% 开头,以 %> 结束。
JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

Tomcat 功能组件结构

Tomcat 的核心功能有两个,分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。 其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

●Connector:负责对外接收和响应请求。它是Tomcat与外界的交通枢纽,监听端口接收外界请求,并将请求处理后传递给容器做业务处理,最后将容器处理后的结果响应给外界。
●Container:负责对内处理业务逻辑。其内部由 Engine、Host、Context和Wrapper 四个容器组成,用于管理和调用 Servlet 相关逻辑。
●Service:对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件,以及其他功能组件。Tomcat 可以管理多个 Service,且各 Service 之间相互独立。

Container 结构分析

每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器:
4个子容器的作用分别是:
(1)Engine:引擎,用来管理多个虚拟主机,一个 Service 最多只能有一个 Engine;
(2)Host:代表一个虚拟主机,也可以叫站点,通过配置 Host 就可以添加站点;
(3)Context:代表一个 Web 应用,包含多个 Servlet 封装器;
(4)Wrapper:封装器,容器的最底层。每一 Wrapper 封装着一个 Servlet,负责对象实例的创建、执行和销毁功能。

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

Engine、Host、Context 和 Wrapper,这四个容器之间属于父子关系。
容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。

Tomcat 请求过程

1、用户在浏览器中输入网址,请求被发送到本机端口 8080,被在那里监听的 Connector 获得;
2、Connector 把该请求交给它所在的 Service 的 Engine(Container)来处理,并等待 Engine 的回应;
3、请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用,最后在 Servlet 中执行对应的业务逻辑、数据存储等。
4、执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回,最后返回给 Connector,并通过 Connector 返回给客户端。

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

二、Tomcat部署

在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

1、关闭防火墙和selinux,并将Tomcat所需软件包传到/opt目录下

systemctl stop firewalld
setenforce 0

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

2、安装JDK

我的虚拟机是最小化安装,没有安装java,不是最小化安装的虚拟机,均默认安装了java,所以不是最小化安装不需要安装JDK

cd /opt

rpm -ivh jdk-8u201-linux-x64.rpm 

java -version

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

3、设置JDK环境变量

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


source /etc/profile.d/java.sh

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

4、安装Tomcat,解压tomcat安装包,并将解压出来的文件复制或移动到安装目录

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz

mv apache-tomcat-9.0.16 /soft/tomcat1

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

5、启动Tomcat

#后台启动
/soft/tomcat1/bin/startup.sh 

/usr/local/tomcat/bin/catalina.sh start    
    
#前台启动
/soft/tomcat1/bin/catalina.sh run        

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

也可以将tomcat加入到systemd中管理

vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/soft/tomcat1/bin/startup.sh
ExecStop=/soft/tomcat1/bin/shutdown.sh
Restart=on-failure
[Install]WantedBy=multi-user.target

6、测试

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

三、Tomcat 虚拟主机配置

一般不会是在一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机。

1、创建 kgc 和 benet 项目目录和文件

mkdir /soft/tomcat1/webapps/heitui

mkdir /soft/tomcat1/webapps/aaa

echo "This is heitui web page\!" > /soft/tomcat1/webapps/heitui/index.jsp

echo "This is aaa web page\!" > /soft/tomcat1/webapps/aaa/index.jsp

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

2、修改Tomcat主配置文件server.xml

vim /usr/local/tomcat/conf/server.xml

#添加Host配置段,并在Host配置段中添加Context配置段

<Host name="www.heitui.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context docBase="/soft/tomcat1/webapps/heitui" path="" reloadable="true" />
</Host>

<Host name="www.aaa.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context docBase="/soft/tomcat1/webapps/aaa" path="" reloadable="true" />
</Host>

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

3、启动服务

/soft/tomcat1/bin/startup.sh

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

4、测试

使用浏览器测试,现在windows中的hosts文件添加上配置,否则不能使用域名访问。

windows中hosts文件路径是    C:\Windows\System32\drivers\etc

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java
tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

四、Tomcat多实例

首先多实例的意思就是一个服务器上启用多个tomcat服务,相当于在电脑中多开几个手机模拟器一样。

这样就会出现端口冲突的问题,所以在多开tomcat服务的时候,需要将其他的tomcat的端口改掉。

tomcat使用的端口有8080,8005,8009,8443四个端口,其每个端口的意思如下:
8080:tomcat的默认端口,用于接收处理http请求的端口
8443:用于接收处理https请求的端口
8005:用于关闭tomcat的端口
8009:8009端口使用的是AJP协议,在tomcat于apache连接使用,apache通过APJ协议访问tomcatd的8009端口

多实例的实现

1、在上方部署tomcat操作中,第4步骤中,解压tomcat安装包,然后在安装目录中创建多个tomcat(tomcat1,tomcat2,tomcat3...),最后将解压出来的文件复制到多个tomcat中

cd   /soft

mkdir tomcat{1..3}

cp   -a   /opt/apache-tomcat-9.0.16   /soft/tomcat1

cp   -a   /opt/apache-tomcat-9.0.16   /soft/tomcat2

cp   -a   /opt/apache-tomcat-9.0.16   /soft/tomcat3

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

2、修改tomcat2和tomcat3中的主配置文件,将其端口都修改,避免端口冲突

vim /soft/tomcat2/conf/server.xml

将8005、8080、8009三个端口都修改掉,我这里就都加1了,为8006、8081、8010
 

vim /soft/tomcat3/conf/server.xml

将8005、8080、8009三个端口都修改掉,我这里就都加2了,为8007、8082、8011

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java
tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java
tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java
tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java
tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

3、分别在tomcat1,2,3目录中的webapps目录下创建heitui目录,并在heitui目录下创建网页文件

mkdir  /soft/tomcat1/webapps/heitui

mkdir  /soft/tomcat2/webapps/heitui

mkdir  /soft/tomcat3/webapps/heitui

echo "this is tomcat1 web page!" > /soft/tomcat1/webapps/heitui/index.jsp

echo "this is tomcat2 web page!" > /soft/tomcat2/webapps/heitui/index.html

echo "Welcome to tomcat3 page!!!" > /soft/tomcat3/webapps/heitui/index.jsp

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

4、在tomcat1,2,3目录中的bin目录下,修改startup.sh脚本和shutdown.sh脚本

#在startup.sh脚本和shutdown.sh脚本添加如下语句

#tomcat1中添加如下

export CATALINA_BASE=/soft/tomcat1
export CATALINA_HOME=/soft/tomcat1
export TOMCAT_HOME=/soft/tomcat1

#tomcat2中添加如下

export CATALINA_BASE=/soft/tomcat2
export CATALINA_HOME=/soft/tomcat2
export TOMCAT_HOME=/soft/tomcat2


#tomcat3中添加如下

export CATALINA_BASE=/soft/tomcat3
export CATALINA_HOME=/soft/tomcat3
export TOMCAT_HOME=/soft/tomcat3

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

5、启动tomcat1,2,3

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

6、测试

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

四、tomcat优化

1、配置优化

修改配置文件server.xml 文件

maxThreads(最大线程数/并发)  

processorCache(进程缓冲)  

acceptCount(等待队列数)  

enableLookups(关闭DNS反向解析)  

URIEncoding(网页字符集编码UTF-8)

maxKeepAliveRequests(长连接最大请求数)  

connectionTimeout(连接超时时间)  

compression(开启页面压缩)

2、系统内核优化

修改/etc/security/limits.conf配置文件和/etc/sysctl.conf

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java

tomcat部署、tomcat虚拟主机及tomcat多实例,tomcat,java 

体优化的文件为/etc/sysctl.conf,后尾追加优化参数:

net.ipv4.tcp_synack_retries = 2  #参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。
net.ipv4.tcp_syn_retries = 1 #表示在内核放弃建立连接之前发送SYN包的数量。
net.ipv4.tcp_max_syn_backlog = 262144 #这个参数表示TCP三次握手建立阶段接受SYN请求列队的最大长度,默认1024,将其设置的大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的链接请求。
net.ipv4.tcp_syncookies = 1  #解决syn攻击,用于设置开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies进行处理。
 
net.ipv4.tcp_tw_reuse = 1    #参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,这对于服务器来说意义重大,因为总有大量TIME_WAIT状态的链接存在;
net.ipv4.tcp_timestamps = 1  #开启时间戳,配合tcp复用。如遇到局域网内的其他机器由于时间戳不同导致无法连接服务器,有可能是这个参数导致。注:阿里的slb会清理掉tcp_timestamps
net.ipv4.tcp_tw_recycle = 1 #这个参数用于设置启用timewait快速回收
net.ipv4.tcp_max_tw_buckets = 6000 #参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,该参数默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢。
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1 #当服务器主动关闭链接时,选项决定了套接字保持在FIN-WAIT-2状态的时间。默认值是60秒。
net.ipv4.tcp_keepalive_time = 600 #当keepalive启动时,TCP发送keepalive消息的频度;默认是2小时,将其设置为10分钟,可以更快的清理无效链接。
net.ipv4.ip_local_port_range = 1024 65000#定义UDP和TCP链接的本地端口的取值范围。
fs.file-max=65535  #表示最大可以打开的句柄数;

3、JVM优化

在 catalina.sh 中设置 JAVA_OPTS 参数

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/tomcat/temp/oom.hprof -XX:ParallelGCThreads=2 -XX:PermSize=1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true -XX:+DisableExplicitGC" 

参数说明:
-server:一定要作为第一个参数,在多个CPU时性能佳

-Xms:堆内存的初始大小,是分配JVM的初始内存,默认为物理内存的1/64。一般来讲,此值设的大点,程序会启动的快一点。

-Xmx:堆内存的最大大小,是分配JVM的最大内存,默认为物理内存的1/4。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。
----------------------------------------------------
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。
因此建议-Xms与-Xmx设成一样的值,均设为物理内存的一半。其目的是为了避免在java每次GC(垃圾回收机制清理堆区)后需要重新调整堆的大小而浪费资源。
----------------------------------------------------

-Xmn:堆内新生代的大小,通过这个值也可以得到老生代的大小:-Xmx减去-Xmn。官方推荐配置为整个堆的 3/8。
----------------------------------------------------
●堆区进一步细化分为:新生代、中生代、老生代。
●java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。
●整个JVM堆大小 = 新生代大小 + 老生代大小 + 永久代大小
----------------------------------------------------

-Xss:设置每个线程可使用的内存大小,即栈的大小。一般情况下,设置256k就足够了,此配置将会影响此进程中并发线程数的大小。

-XX:ParallelGCThreads:配置并行收集器的线程数,即:同时有多少个线程一起进行垃圾回收。当 CPU 数量小于8,此值建议配置等于 CPU 数量。

-XX:PermSize:设置非堆内存初始值,即持久代内存大小,默认是物理内存的1/4

-XX:MaxPermSize:最大非堆内存的大小,即最大持久代内存大小,默认是物理内存的1/4
----------------------------------------------------
●非堆区内存是不会被java垃圾回收机制进行处理的,且最大堆内存与最大非堆内存的和不能超出操作系统的可用内存。
●XMX和XMS设置一样大,MaxPermSize和MinPermSize设置一样大,这样可以减轻伸缩堆大小带来的压力。
----------------------------------------------------

-XX:+HeapDumpOnOutOfMemoryError:表示当JVM发生OOM时,自动生成DUMP文件

-XX:HeapDumpPath:表示生成DUMP文件的路径

-XX:+UseParNewGC:对新生代采用多线程并行回收,缩短垃圾收集的时间

-XX:+UseConcMarkSweepGC:并发标记清除收集器,它是老年代的收集算法,缩短垃圾收集的时间

-XX:+DisableExplicitGC:禁止调用System.gc(),防止误调用gc方法导致系统的 JVM 大起大落而使系统响应时间严重降低。

-Djava.awt.headless=true:免避在 Linux/Unix 环境下 Web 网页不能正常显示图片

-XX:+CMSParallelRemarkEnabled:启用并行标记,降低标记停顿

-XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0:这两个参数默认值就是这样的,表示触发FullGC时压缩堆,优化内存碎片

-XX:CMSInitiatingOccupancyFraction=70:在应用程序使用70%完内存后开始CMS垃圾收集
 文章来源地址https://www.toymoban.com/news/detail-695643.html

到了这里,关于tomcat部署、tomcat虚拟主机及tomcat多实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 虚拟主机部署ssl证书(https)流程

    注意事项: 1、域名要做别名解析指向二级域名 2、证书已经申请完成,其他公司的证书要下载导入到西部数码。 虚拟主机部署教程如下: 部署证书 首先要将域名绑定到主机上,在主机控制面板找到【 SSL部署 】按钮。 在西部数码申请过证书(证书在有效期内),系统会自动

    2024年02月16日
    浏览(44)
  • 持续集成部署-k8s-服务发现-Ingress 路径匹配与虚拟主机匹配

    要使用 Ingress-Nginx 首先第一步是需要先安装它,安装的步骤可以参考:持续集成部署-k8s-服务发现-Ingress 这里我使用之前创建的 Service:持续集成部署-k8s-服务发现-Service 我这里创建的 Service 的名称是: nginx-svc 这个后面要用到。

    2024年02月07日
    浏览(32)
  • windows虚拟主机和linux虚拟主机的区别有哪些?

    很多个人站长和中小企业在做网站的时候,会选择虚拟主机。虚拟主机用的操作系统多为Windows系统,很多人一提到操作系统立马联想到Windows系统。其实除了Windows系统外,还有很多的操作系统。其中Linux系统是其中的佼佼者。 1、操作系统 windows虚拟主机则是由windows系统的服务

    2024年01月20日
    浏览(33)
  • 对于主机ping不通虚拟机,虚拟机可以ping通主机之解决方法

    看了一下主机win10的防火墙关了,公用网络也设置成了私有网络,也重启了vmnet8,ip地址也手动设置了,但是无法ping通,经过查阅,发现是虚拟机的防火墙还没有设置,于是将win7的防火墙关闭:   再次通过主机Ping虚拟机即可:     

    2024年02月12日
    浏览(37)
  • 虚拟机可以ping通主机,主机无法ping通虚拟机的解决方法

    关闭虚拟机防火墙 关闭防火墙后就可以ping通了 如何还无法ping通,将虚拟机重新启动后再尝试。 再次要ping 虚拟机的时候又ping不通了,搞了好久终于发现,只要将网络连接中的VMnet8禁用再重启就可以了。

    2024年02月13日
    浏览(34)
  • 关于虚拟机能ping通主机,而主机不能ping通虚拟机的问题

            Ping不通虚拟机或者主机这个问题恐怕让很多同学头疼吧?如果你是关于标题的问题,可以参考一下,如果是其他问题请移步其他博客。当然也欢迎大家前来阅读指正!第一次写,写的不好的地方大家多包涵!         这个问题是我在安装完Vmware虚拟机(15版本或

    2023年04月08日
    浏览(39)
  • ESXI克隆虚拟主机

    目录 一、通过命令克隆主机 二、通过网页端克隆主机 一、通过命令克隆主机 1、启用esxi的ssh 2、ssh登录esxi 3、找到虚拟机所在目录 4、建立新虚拟机目录 5、拷贝vmx文件 6、克隆vmdk 7、修改vmx文件 8、esxi导入克隆完成的虚拟机 本文示例在esxi中克隆虚拟机hadoop-1(已存在), 克

    2024年02月07日
    浏览(34)
  • nginx虚拟主机

    虚拟主机指的就是一个独立的站点配置,是nginx默认支持的一个功能,它能够有自己独立的域名,独立的ip,独立的端口配置,能够配置完整的www服务,列如网站搭建,邮件服务器代理等等。并且nginx支持多虚拟主机,可以在一台机器上同时运行多个网站的功能。 nginx的多虚拟

    2024年01月22日
    浏览(28)
  • 第8章 虚拟主机

    虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。 Nginx提供虚拟主机的功能,就是为了让我们不需要安装多个Nginx,就可以运行多个域名不同的网站。 Nginx下,一个server标签就

    2024年02月03日
    浏览(33)
  • Nginx 虚拟主机

    优质博文 IT-BLOG-CN 虚拟主机使用的是特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台 “虚拟” 的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完成的 Intemet 服务器功能( WWW 、 FTP 、 Email 等),同一台主机上的虚拟主机之间是

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包