阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

httpd+tomcat+memcached实现session保持

383次阅读
没有评论

共计 11729 个字符,预计需要花费 30 分钟才能阅读完成。

本节我将带大家认识 tomcat 以及如何基于 memcached 实现 tomcat 的会话保持。好了废话不多说,下面我们就开始了。

tomcat 的介绍

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。实际上 Tomcat 是 Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。通常在我们的应用过程中,我们让 Apache 来处理 HTML 页面请求,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。

tomcat 的安装

首先我们要做到是 部署 Java 环境,只有安装 JDK 即可。

这里我已经有下好的 JDK 了

我使用的是 jdk-7u9-linux-x64.rpm 这个版本

直接安装即可。

[root@TomcatA ~]# rpm -ivh jdk-7u9-linux-x64.rpm

tomcat 的话我这里也是下载好了。直接解压就可以用了 apache-tomcat-7.0.55.tar.gz

[root@TomcatA ~]# tar xf apache-tomcat-7.0.55.tar.gz -C /usr/local/            我们把它放在 /usr/local/ 

一般我们都做个链接

[root@TomcatA local]# ln -sv apache-tomcat-7.0.55/ tomcat

下面修改下环境变量

[root@TomcatA local]# cat /etc/profile.d/java.sh                      这个是 Java 的变量

JAVA_HOME=/usr/java/latest  
PATH=$JAVA_HOME/bin:$PATH    
export JAVA_HOME PATH

[root@TomcatA local]# cat /etc/profile.d/tomcat.sh                  这个是 tomcat 的

export CATALINA_HOME=/usr/local/tomcat  
export PATH=$CATALINA_HOME/bin:$PATH

好了下面就可以使用 Catalina.sh 来启动了                                      Catalina.sh 是服务启动脚本

[root@TomcatA local]# catalina.sh start  
Using CATALINA_BASE:  /usr/local/tomcat    
Using CATALINA_HOME:  /usr/local/tomcat    
Using CATALINA_TMPDIR: /usr/local/tomcat/temp    
Using JRE_HOME:        /usr/java/latest    
Using CLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar    
Tomcat started.

这样 tomcat 就启动了。

[root@TomcatA local]# netstat -tnlp  
Active Internet connections (only servers)    
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name 
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1473/rpcbind       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1726/sshd         
tcp        0      0 127.0.0.1:631              0.0.0.0:*                  LISTEN      1578/cupsd         
tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1823/master       
tcp        0      0 0.0.0.0:46718              0.0.0.0:*                  LISTEN      1549/rpc.statd     
tcp        0      0 :::36716                    :::*                        LISTEN      1549/rpc.statd     
tcp        0      0 :::111                      :::*                        LISTEN      1473/rpcbind       
tcp        0      0 :::8080                    :::*                        LISTEN      2147/java         
tcp        0      0 :::22                      :::*                        LISTEN      1726/sshd         
tcp        0      0 ::1:631                    :::*                        LISTEN      1578/cupsd         
tcp        0      0 ::1:25                      :::*                        LISTEN      1823/master       
tcp        0      0 ::ffff:127.0.0.1:8005      :::*                        LISTEN      2147/java         
tcp        0      0 :::8009                    :::*                        LISTEN      2147/java 

通过上面的结果我们可以看出该服务启动了 3 个端口:8080  8009    8005

 

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

 

Ubuntu 下部署 Solr(4.4)到 Tomcat(7.0.53) http://www.linuxidc.com/Linux/2014-05/101443.htm

 

Linux 下 Apache 与多个 Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

 

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

 

实例详解 Tomcat 组件安装 +Nginx 反向代理 Tomcat+Apache 使用 mod_jk 和 mod_proxy 反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

 

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm

 

Apache+Tomcat 环境搭建(JK 部署过程)http://www.linuxidc.com/Linux/2012-11/74474.htm

 

下面我们就可以直接通过浏览器看下了。通过 8080 端口访问。

httpd+tomcat+memcached 实现 session 保持

OK,tomcat 服务以及可以启用了。

 

那么下面我们就来看看如何构建 Apache+tomcat+memcached 架构

实验:  
前端 Apache:192.168.1.200

tomcat 节点:192.168.1.201(TomcatA),192.168.1.202(TomcatB)
memcached 节点(一主一备实现高可用):192.168.1.201, 192.168.1.202(机器内存有限,所以就没有用独立的主机了)
实验拓扑图:

httpd+tomcat+memcached 实现 session 保持 

前端 Apache 服务器配置

我们这里用到的是 Apache 的代理模块,由于 centos6.5 中内核支持该代理模块,因此我们只需要直接 yum 安装 httpd 然后再配置文件中加入以下文件即可:

[root@bogon ~]# vim /etc/httpd/conf.d/mod_proxy.conf    
<Proxy balancer://lbcluster1>    
BalancerMember http://192.168.1.202:8080 loadfactor=1
BalancerMember http://192.168.1.201:8080 loadfactor=1   
ProxySet lbmethod=byrequests    
</Proxy>

ProxyVia Off  
ProxyRequests Off  
ProxyPass / balancer://lbcluster1/  
ProxyPassReverse / balancer://lbcluster1/

memcached 服务器

缓存服务器直接在 2 个节点上 yum 安装即可,非常简单

yum install memcached

安装好之后启动服务

[root@localhost ~]# service memcached start  
Starting memcached:                                        [OK]

可以看到 11211 端口打开

[root@localhost ~]# ss -tnl  
State      Recv-Q Send-Q                      Local Address:Port                        Peer Address:Port    
LISTEN      0      128                                    :::11211                                :::*   
LISTEN      0      128                                    *:11211                                  *:* 

 

 

tomcat 端配置

最关键的就是 tomcat 的配置了

实现会话保持我们用到的是 memcached-session-manager,而他需要一下几个类库,我已经下载好了

这个是项目官方地址,可以到这里进行下载 http://code.google.com/p/memcached-session-manager/

[root@TomcatA msm]# ls  
javolution-5.5.1.jar               

memcached-session-manager-tc7-1.8.2.jar 

spymemcached-2.10.2.jar 

memcached-session-manager-1.8.2.jar 

msm-javolution-serializer-1.8.2.jar

将这几个类库放到 tomcat 的 lib 库中,

[root@TomcatA msm]# cp * /usr/local/tomcat/lib/

进去看下,确保复制成功

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107520p2.htm 

好了下面就开始修改配置文件/usr/local/tomcat/conf/server.xml 

分别在两个 tomcat 上的 host 上定义一个用于测试的 context 容器,并在其中创建一个会话管理器,如下所示:

<Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">   

 
              <Manager className="de.Javakaffee.web.msm.MemcachedBackupSessionManager"   
 
           memcachedNodes="n1:192.168.1.201:11211,n2:192.168.1.202:11211"          # 这里分别指向 2 台 memcached 服务器   
 
                failoverNodes="n1"   
 
                requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"   
 
                transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"   
 
              />   
 
             </Context>
 
 

提供测试相应的文件夹及测试文件:

tomcatA:      
# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}

mkdir: created directory `/usr/local/tomcat/webapps/test’  
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF’    
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/classes’    
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/lib’

# vim /usr/local/tomcat/webapps/test/index.jsp    
<%@ page language=”java” %>    
<html>    
  <head><title>TomcatA</title></head>    
  <body>    
    <h1><font color=”red”>TomcatA.magedu.com</h1>    
    <table align=”centre” border=”1″>    
      <tr>    
        <td>Session ID</td>    
    <% session.setAttribute(“magedu.com”,”magedu.com”); %>    
        <td><%= session.getId() %></td>    
      </tr>    
      <tr>    
        <td>Created on</td>    
        <td><%= session.getCreationTime() %></td>    
    </tr>    
    </table>    
  </body>    
</html>

 

复制 web.xml 文件

# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/

 

tomcatB:      
# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}

mkdir: created directory `/usr/local/tomcat/webapps/test’  
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF’  
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/classes’  
mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/lib’

# vim /usr/local/tomcat/webapps/test/index.jsp  
<%@ page language=”java” %>    
<html>    
  <head><title>TomcatB</title></head>    
  <body>    
    <h1><font color=”blue”>TomcatB.magedu.com</h1>    
    <table align=”centre” border=”1″>    
      <tr>    
        <td>Session ID</td>    
    <% session.setAttribute(“magedu.com”,”magedu.com”); %>    
        <td><%= session.getId() %></td>    
      </tr>    
      <tr>    
        <td>Created on</td>    
        <td><%= session.getCreationTime() %></td>    
    </tr>    
    </table>    
  </body>    
</html>

复制 web.xml 文件

# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/ 

好了下面我们就可以开始测试了 

httpd+tomcat+memcached 实现 session 保持

httpd+tomcat+memcached 实现 session 保持

 

OK,sessionID 没变,会话成功保持。

那么本节的内容就讲到这里,老规矩,有什么不好地方欢迎大家的批评指正,谢谢!

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本节我将带大家认识 tomcat 以及如何基于 memcached 实现 tomcat 的会话保持。好了废话不多说,下面我们就开始了。

tomcat 的介绍

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。实际上 Tomcat 是 Apache 服务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。通常在我们的应用过程中,我们让 Apache 来处理 HTML 页面请求,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。

tomcat 的安装

首先我们要做到是 部署 Java 环境,只有安装 JDK 即可。

这里我已经有下好的 JDK 了

我使用的是 jdk-7u9-linux-x64.rpm 这个版本

直接安装即可。

[root@TomcatA ~]# rpm -ivh jdk-7u9-linux-x64.rpm

tomcat 的话我这里也是下载好了。直接解压就可以用了 apache-tomcat-7.0.55.tar.gz

[root@TomcatA ~]# tar xf apache-tomcat-7.0.55.tar.gz -C /usr/local/            我们把它放在 /usr/local/ 

一般我们都做个链接

[root@TomcatA local]# ln -sv apache-tomcat-7.0.55/ tomcat

下面修改下环境变量

[root@TomcatA local]# cat /etc/profile.d/java.sh                      这个是 Java 的变量

JAVA_HOME=/usr/java/latest  
PATH=$JAVA_HOME/bin:$PATH    
export JAVA_HOME PATH

[root@TomcatA local]# cat /etc/profile.d/tomcat.sh                  这个是 tomcat 的

export CATALINA_HOME=/usr/local/tomcat  
export PATH=$CATALINA_HOME/bin:$PATH

好了下面就可以使用 Catalina.sh 来启动了                                      Catalina.sh 是服务启动脚本

[root@TomcatA local]# catalina.sh start  
Using CATALINA_BASE:  /usr/local/tomcat    
Using CATALINA_HOME:  /usr/local/tomcat    
Using CATALINA_TMPDIR: /usr/local/tomcat/temp    
Using JRE_HOME:        /usr/java/latest    
Using CLASSPATH:      /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar    
Tomcat started.

这样 tomcat 就启动了。

[root@TomcatA local]# netstat -tnlp  
Active Internet connections (only servers)    
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name 
tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1473/rpcbind       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1726/sshd         
tcp        0      0 127.0.0.1:631              0.0.0.0:*                  LISTEN      1578/cupsd         
tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1823/master       
tcp        0      0 0.0.0.0:46718              0.0.0.0:*                  LISTEN      1549/rpc.statd     
tcp        0      0 :::36716                    :::*                        LISTEN      1549/rpc.statd     
tcp        0      0 :::111                      :::*                        LISTEN      1473/rpcbind       
tcp        0      0 :::8080                    :::*                        LISTEN      2147/java         
tcp        0      0 :::22                      :::*                        LISTEN      1726/sshd         
tcp        0      0 ::1:631                    :::*                        LISTEN      1578/cupsd         
tcp        0      0 ::1:25                      :::*                        LISTEN      1823/master       
tcp        0      0 ::ffff:127.0.0.1:8005      :::*                        LISTEN      2147/java         
tcp        0      0 :::8009                    :::*                        LISTEN      2147/java 

通过上面的结果我们可以看出该服务启动了 3 个端口:8080  8009    8005

 

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

 

Ubuntu 下部署 Solr(4.4)到 Tomcat(7.0.53) http://www.linuxidc.com/Linux/2014-05/101443.htm

 

Linux 下 Apache 与多个 Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

 

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

 

实例详解 Tomcat 组件安装 +Nginx 反向代理 Tomcat+Apache 使用 mod_jk 和 mod_proxy 反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

 

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm

 

Apache+Tomcat 环境搭建(JK 部署过程)http://www.linuxidc.com/Linux/2012-11/74474.htm

 

下面我们就可以直接通过浏览器看下了。通过 8080 端口访问。

httpd+tomcat+memcached 实现 session 保持

OK,tomcat 服务以及可以启用了。

 

那么下面我们就来看看如何构建 Apache+tomcat+memcached 架构

实验:  
前端 Apache:192.168.1.200

tomcat 节点:192.168.1.201(TomcatA),192.168.1.202(TomcatB)
memcached 节点(一主一备实现高可用):192.168.1.201, 192.168.1.202(机器内存有限,所以就没有用独立的主机了)
实验拓扑图:

httpd+tomcat+memcached 实现 session 保持 

前端 Apache 服务器配置

我们这里用到的是 Apache 的代理模块,由于 centos6.5 中内核支持该代理模块,因此我们只需要直接 yum 安装 httpd 然后再配置文件中加入以下文件即可:

[root@bogon ~]# vim /etc/httpd/conf.d/mod_proxy.conf    
<Proxy balancer://lbcluster1>    
BalancerMember http://192.168.1.202:8080 loadfactor=1
BalancerMember http://192.168.1.201:8080 loadfactor=1   
ProxySet lbmethod=byrequests    
</Proxy>

ProxyVia Off  
ProxyRequests Off  
ProxyPass / balancer://lbcluster1/  
ProxyPassReverse / balancer://lbcluster1/

memcached 服务器

缓存服务器直接在 2 个节点上 yum 安装即可,非常简单

yum install memcached

安装好之后启动服务

[root@localhost ~]# service memcached start  
Starting memcached:                                        [OK]

可以看到 11211 端口打开

[root@localhost ~]# ss -tnl  
State      Recv-Q Send-Q                      Local Address:Port                        Peer Address:Port    
LISTEN      0      128                                    :::11211                                :::*   
LISTEN      0      128                                    *:11211                                  *:* 

 

 

tomcat 端配置

最关键的就是 tomcat 的配置了

实现会话保持我们用到的是 memcached-session-manager,而他需要一下几个类库,我已经下载好了

这个是项目官方地址,可以到这里进行下载 http://code.google.com/p/memcached-session-manager/

[root@TomcatA msm]# ls  
javolution-5.5.1.jar               

memcached-session-manager-tc7-1.8.2.jar 

spymemcached-2.10.2.jar 

memcached-session-manager-1.8.2.jar 

msm-javolution-serializer-1.8.2.jar

将这几个类库放到 tomcat 的 lib 库中,

[root@TomcatA msm]# cp * /usr/local/tomcat/lib/

进去看下,确保复制成功

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107520p2.htm 

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计11729字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7961446
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...