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

实现Nginx通过反代对Java环境和Perl环境的支持(附Tomcat)

423次阅读
没有评论

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

环境:
CentOS 6.4 64 位
Nginx-1.3.9
JDK-1.7
tomcat-6.0.10
 
摘要:
Apache 对 Java 的支持很灵活,多为 Apache+Tomcat 和 Apache+resin 等都实现。Apache 采用内置模块来支持 Java 应用服务器。而 Nginx 在支持 Java 应用服务器方面是通过自身的反向代理功能来实现的,反向代理是 Nginx 的一个优点,将请求代理给 java 服务器,减少两者相互影响度,对此也是仁者见仁智者见智
搭建 Nginx+Java 环境:

在《高性能 Linux 服务器构建实战》书中介绍两种实现方式,这里以实例。更详细的介绍一下:

第一种:将静态页面请求交给 Nginx,动态请求交给后端 Tomcat 处理。
第二种:将所有请求都交给后端的 Tomcat 服务器处理,同时利用 Nginx 自身的负载均衡功能,进行多台 Tomcat 服务器的负载均衡。
 
一、首先详细 Tomcat 的安装步骤:

1、下载 jdk,本例使用 jdk-7u5-linux-i586.rpm
有 2 个可以使用的安装包
jdk-7u5-linux-i586.tar.gz
jdk-7u5-linux-i586.rpm
下载页面:http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
 
2、查看并修改使 jdk-7u5-linux-i586.rpm 具有执行权限(我用 root 安装,默认有执行权限)
chmod+x jdk-7u5-linux-i586.rpm

3、卸载旧的版本
(1)、若之前没有装过,卸载系统自带的 jdk 版本:
查看自带的 jdk:
#rpm-qa|grep gcj

看到如下信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用 rpm -e –nodeps 命令删除上面查找的内容:
#rpm -e–nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

 
(2)、若之前自己装过,卸载 rpm 安装的 jdk 版本
查看安装的 jdk:
#rpm-qa|grep jdk

看到如下信息:
jdk-1.6.0_22-fcs
卸载:
#rpm -e–nodeps jdk-1.6.0_22-fcs

 

4、安装 jdk (根据提示一步步安装)
#rpm -ivh jdk-7u5-linux-i586.rpm

Preparing… ###########################################[100%]
1:jdk ########################################### [100%]
Unpacking JAR files…
rt.jar…
jsse.jar…
charsets.jar…
tools.jar…
localedata.jar…
plugin.jar…
javaws.jar…
deploy.jar..
 
也有可能出现下面情况
Unpacking JAR files…
rt.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/rt.pack
jsse.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/jsse.pack
charsets.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/charsets.pack
localedata.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/ext/localedata.pack
 
这个不用管它,是因为你的 rpm 包里把这些文件直接装进 JAR 包里了,Unpacking 的时候找不到,不影响的。

5、增加 JAVA_HOME 环境变量
vi /etc/profile
在最后面增加:
#set java environment
exportJAVA_HOME=/usr/java/jdk1.7.0_05
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin
exportJAVA_HOME CLASSPATH PATH

保存退出
 
6、安装 Tomcat
下载 apache-tomcat-6.0.10.tar.gz
tar -zxvf apache-tomcat-6.0.10.tar.gz
cp -R apache-tomcat-6.0.10 /usr/local/tomcat/ #拷贝 apache-tomcat-6.0.10 到 /usr/local/ 下并重命名为 tomcat
4) /usr/local/tomcat/bin/startup.sh #启动 tomcat
显示
Using CATALINA_BASE: /usr/local/tomcat
Using
CATALINA_HOME: /usr/local/tomcat
Using
CATALINA_TEMDIR: /usr/local/tomcat/temp
Using
JAVA_HOME: /usr/java/jdk1.6.0_01
 
7、测试
访问 http://10.150.1.109:8080 显示如下图一只猫。说明安装成功!

实现 Nginx 通过反代对 Java 环境和 Perl 环境的支持(附 Tomcat)

推荐阅读

 

Nginx 实现反向代理和负载均衡的配置及优化 http://www.linuxidc.com/Linux/2013-11/92909.htm

 

Nginx 做负载均衡报:nginx: [emerg] could not build the types_hash http://www.linuxidc.com/Linux/2013-10/92063.htm

 

Nginx 负载均衡模块 ngx_http_upstream_module 详述 http://www.linuxidc.com/Linux/2013-10/91907.htm

 

Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器 http://www.linuxidc.com/Linux/2013-10/91824.htm

 

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

 

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

二、. 以第一种实现:动态与静态页面分离实现
Tomcat 在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱。虽然 Tmcat 的最新版本支持 epoll,但是通过 Nginx 来处理静态页面要比通过 Tomcat 处理在性能方面好很多。所以最好的搭配是静态由 Nginx 处理,动态交给 Tomcat

这里假定 Tomcat 服务器的 IP 地址为 10.150.1.109,同时 tomcat 服务器开放的服务端口为 8080,Nginx 相关配置代码如下:
server {
listen 80;
server_namewww.linuxidc.net;
root/web/www/html;
location /img/{
alias/web/www/html/img/;
}
location ~ (\.jsp)|(\.do)$ {
proxy_passhttp://10.150.1.109:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}

在这个实例中,首先定义了一个虚拟主机 www.linuxidc.net,然后通过 location 指令将 /web/www/html/img/ 目录下的静态文件交给 Nginx 来完成,最后一个 location 指令将所有以.jsp、.do 结尾的文件都交给 Tomcat 服务器的 8080 端口来处理,即 http:// 10.150.1.109:8080。

需要特别注意的是,在 location 指令中使用正则表达式后,proxy_pass 后面的代理路径不能含有地址链接,也就是不能写成 http:// 10.150.1.109:8080/,或者类似 http:// 10.150.1.109:8080/jsp 的形式。在 location 指令不使用正则表达式时,没有此限制。

三、以第二种实现:多个 Tomcat,Nginx 做负载均衡实例
这里假定有三台 Tomcat 服务器,分别开放不同的端口,地址分别是:

10.150.1.109:8000
10.150.1.110:8080
10.150.1.112:8090

Nginx 的相关配置代码如下:
upstream mytomcats {
server 10.150.1.109:8000;
server 10.150.1.110:8080;
server 10.150.1.112:8090;
}
server {
listen 80;
server_namewww.linuxidc.net;
location ~*\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
root/web/www/html/;
}
location / {
proxy_passhttp://mytomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}

在这个实例中,首先通过 upstream 定义一个负载均衡组,组名为 mytomcats,组的成员就是上面指定的三台 Tomcat 服务器; 接着通过 server 指令定义一个 www.linuxidc.net 的虚拟主机; 然后通过 location 指令以正则表达式的方式将指定类型的文件全部交给 Nginx 去处理; 最后将其它所有请求全部交给负载均衡组来处理。
这里还有一点需要注意,如果在 location 指令使用正则表达式后再用 alias 指令,nginx 是不支持的。
#########################################################################################

说明:现在 Perl 的网站市面上已经不算多了,但是 Perl 不只是用于网页, 还有很多程序,Nginx 本身是一个静态的 HTTP 服务器和反向代理服务器,它并不支持动态页面, 不过可以通过 Nginx 的反向代理功能实现。下面要讲述的 Nginx 通过反向代理对 Perl 和 JSP 的支持,反向代理的原理大同小异。
Nginx 的安装路径为 /usr/local/nginx。

Nginx 对 Perl 的支持

一、Perl 的安装
1. 获取 wrapper 程序
网上很多文档、教程给的下载连接都已经失效,这里我上传一份最新的。

下载地址

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是 www.linuxidc.com

具体下载目录在 /2013 年资料 /12 月 / 4 日 / 实现 Nginx 通过反代对 Java 环境和 Perl 环境的支持(附 Tomcat)

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

解压出来将其命名为 nginx-fcgi.pl 并放到 /usr/local/nginx 目录下。nginx-fcgi.pl 是一个用 Perl 脚本写的 wrapper 实例,所以,操作系统必须要安装 Perl 程序以及相关模块。

2. 安装相关的系统支持模块
(1) 安装 FCGI 模块
获取地址:http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-0.74.tar.gz
# tar zxvf FCGI-0.74.tar.gz
# cd FCGI-0.74
# perl Makefile.PL
# make
# make install

 
(2)安装 IO 模块
获取地址:http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz
# tar -xvzf IO-1.25.tar.gz
# cd IO-1.25
# perl Makefile.PL
# make
# make install

(3)安装 IO::ALL 模块
获取地址:http://www.cpan.org/authors/id/I/IN/INGY/IO-All-0.50.tar.gz
# tar -xvzf IO-All-0.50.tar.gz
# cd IO-All-0.50
# perl Makefile.PL
#make
#make install

 
3. 编写 nginx-fcgi 启动脚本
仅有 wrapper 文件是不够的,还需要一个脚本来创建 socket、启动 wrapper 以及将 wrapper 和 socket 绑定,下面通过一个 shell 脚本来完成这一系列工作。

#!/bin/bash
nginxroot=/usr/local/nginx
start ()
{
chownnobody.root $nginxroot/logs
echo”$nginxroot/nginx-fcgi.pl -l $nginxroot/logs/nginx-fcgi.log -pid$nginxroot/logs/nginx-fcgi.pid -S $nginxroot/logs/nginx-fcgi.sock”>>$nginxroot/nginx_fcgi.sh
chownnobody.nobody$nginxroot/nginx_fcgi.sh
chmod755$nginxroot/nginx_fcgi.sh
sudo-u nobody$nginxroot/nginx_fcgi.sh
echo”start nginx-fcgi done”
}
stop ()
{
kill$(cat$nginxroot/logs/nginx-fcgi.pid)
rm$nginxroot/logs/nginx-fcgi.pid 2>/dev/null
rm$nginxroot/logs/nginx-fcgi.sock 2>/dev/null
rm$nginxroot/nginx_fcgi.sh 2>/dev/null
echo”stopnginx-fcgi done”
}
case$1 in
stop)
stop
;;
start)
start
;;
restart)
stop
start
;;
*)
echo$”Usage: perl-cgi {start|stop|restart}”
exit1
esac

 

在 nginx-fcgi 中,变量 nginxroot 指定 Nginx 的安装目录,nginx-fcgi.sock 是生成的文件 sock,nobody 为运行 nginx_fcgi 进程的用户,这个用户要和运行 Nginx 的用户一致。
配置完脚本后,将此文件放到 /usr/local/nginx 目录下,接着通过如下方式管理 nginx-fcgi 进程。
#chmod 755 /usr/local/nginx/nginx-fcgi.pl
#chmod 755 /usr/local/nginx/nginx-fcgi
#/usr/local/nginx/nginx-fcgi start|stop|restart

环境:
CentOS 6.4 64 位
Nginx-1.3.9
JDK-1.7
tomcat-6.0.10
 
摘要:
Apache 对 Java 的支持很灵活,多为 Apache+Tomcat 和 Apache+resin 等都实现。Apache 采用内置模块来支持 Java 应用服务器。而 Nginx 在支持 Java 应用服务器方面是通过自身的反向代理功能来实现的,反向代理是 Nginx 的一个优点,将请求代理给 java 服务器,减少两者相互影响度,对此也是仁者见仁智者见智
搭建 Nginx+Java 环境:

在《高性能 Linux 服务器构建实战》书中介绍两种实现方式,这里以实例。更详细的介绍一下:

第一种:将静态页面请求交给 Nginx,动态请求交给后端 Tomcat 处理。
第二种:将所有请求都交给后端的 Tomcat 服务器处理,同时利用 Nginx 自身的负载均衡功能,进行多台 Tomcat 服务器的负载均衡。
 
一、首先详细 Tomcat 的安装步骤:

1、下载 jdk,本例使用 jdk-7u5-linux-i586.rpm
有 2 个可以使用的安装包
jdk-7u5-linux-i586.tar.gz
jdk-7u5-linux-i586.rpm
下载页面:http://www.Oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
 
2、查看并修改使 jdk-7u5-linux-i586.rpm 具有执行权限(我用 root 安装,默认有执行权限)
chmod+x jdk-7u5-linux-i586.rpm

3、卸载旧的版本
(1)、若之前没有装过,卸载系统自带的 jdk 版本:
查看自带的 jdk:
#rpm-qa|grep gcj

看到如下信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用 rpm -e –nodeps 命令删除上面查找的内容:
#rpm -e–nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

 
(2)、若之前自己装过,卸载 rpm 安装的 jdk 版本
查看安装的 jdk:
#rpm-qa|grep jdk

看到如下信息:
jdk-1.6.0_22-fcs
卸载:
#rpm -e–nodeps jdk-1.6.0_22-fcs

 

4、安装 jdk (根据提示一步步安装)
#rpm -ivh jdk-7u5-linux-i586.rpm

Preparing… ###########################################[100%]
1:jdk ########################################### [100%]
Unpacking JAR files…
rt.jar…
jsse.jar…
charsets.jar…
tools.jar…
localedata.jar…
plugin.jar…
javaws.jar…
deploy.jar..
 
也有可能出现下面情况
Unpacking JAR files…
rt.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/rt.pack
jsse.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/jsse.pack
charsets.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/charsets.pack
localedata.jar…
Error: Could not open input file:/usr/java/jre1.7.0_10/lib/ext/localedata.pack
 
这个不用管它,是因为你的 rpm 包里把这些文件直接装进 JAR 包里了,Unpacking 的时候找不到,不影响的。

5、增加 JAVA_HOME 环境变量
vi /etc/profile
在最后面增加:
#set java environment
exportJAVA_HOME=/usr/java/jdk1.7.0_05
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin
exportJAVA_HOME CLASSPATH PATH

保存退出
 
6、安装 Tomcat
下载 apache-tomcat-6.0.10.tar.gz
tar -zxvf apache-tomcat-6.0.10.tar.gz
cp -R apache-tomcat-6.0.10 /usr/local/tomcat/ #拷贝 apache-tomcat-6.0.10 到 /usr/local/ 下并重命名为 tomcat
4) /usr/local/tomcat/bin/startup.sh #启动 tomcat
显示
Using CATALINA_BASE: /usr/local/tomcat
Using
CATALINA_HOME: /usr/local/tomcat
Using
CATALINA_TEMDIR: /usr/local/tomcat/temp
Using
JAVA_HOME: /usr/java/jdk1.6.0_01
 
7、测试
访问 http://10.150.1.109:8080 显示如下图一只猫。说明安装成功!

实现 Nginx 通过反代对 Java 环境和 Perl 环境的支持(附 Tomcat)

推荐阅读

 

Nginx 实现反向代理和负载均衡的配置及优化 http://www.linuxidc.com/Linux/2013-11/92909.htm

 

Nginx 做负载均衡报:nginx: [emerg] could not build the types_hash http://www.linuxidc.com/Linux/2013-10/92063.htm

 

Nginx 负载均衡模块 ngx_http_upstream_module 详述 http://www.linuxidc.com/Linux/2013-10/91907.htm

 

Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器 http://www.linuxidc.com/Linux/2013-10/91824.htm

 

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

 

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

二、为 Nginx 添加 FCGI 支持
修改 Nginx 配置文件,在 server 虚拟主机中添加如下配置:
location ~ \.cgi${
root html;
fastcgi_pass unix:/usr/local/nginx/logs/nginx-fcgi.sock;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

在这个 location 配置中,Nginx 与 FastCGI 的通信方式为 Unix Socket。根据经验,IP Socket 在高并发访问下比 Unix Socket 稳定,但 Unix Socket 速度要比 IP Socket 快。“$document_root”是虚拟主机的根目录,在这里是 /usr/local/nginx/html 目录。

三、测试 Nginx +Perl(FastCGI)

以上配置工作完成后,即可启动服务了。首选启动 nginx-fcgi 进程:
/usr/local/nginx/nginx-fcgistart

再启动 nginx:
/usr/local/nginx/sbin/nginx

在 /usr/local/nginx/html 目录下创建一个 123.cgi 的文件。
# disable filename globbing
set-f
echo”Content-type: text/plain;charset=iso-8859-1″
echo
echoCGI/1.0 testscript report:
echo
echoargc is $#. argv is “$*”.
echo
echoSERVER_SOFTWARE = $SERVER_SOFTWARE
echoSERVER_NAME = $SERVER_NAME
echoGATEWAY_INTERFACE = $GATEWAY_INTERFACE
echoSERVER_PROTOCOL = $SERVER_PROTOCOL
echoSERVER_PORT = $SERVER_PORT
echoREQUEST_METHOD = $REQUEST_METHOD
echoREMOTE_ADDR = $REMOTE_ADDR


接着通过浏览器访问“http://10.150.1.111/123.cgi”,如果显示与下面类似的信息,表明 Nginx+Perl 环境搭建成功:

实现 Nginx 通过反代对 Java 环境和 Perl 环境的支持(附 Tomcat)

问题:
1、编译 FCGI 的时候报错.
Can’t locateExtUtils/MakeMaker.pm in @INC
……
BEGIN failed–compilation aborted at Makefile.PL line 3.
解决办法:
yum install perl-ExtUtils-CBuilderperl-ExtUtils-MakeMaker
 
2、编译 IO-All 的时候报错:
make: Warning: File`Makefile.PL’ has modification time 3.9e+06 s in the future
安装 IO-All 的时候 make 报以上错,说明是系统时间的问题,
解决办法:/usr/sbin/ntpdatentp.api.bz
 
3、启动 nginx-fcgi 的时候报 PID 文件问题
ERROR PID file /usr/local/nginx/logs/nginx-fcgi.pid already exists
是权限不够
解决办法:chown nobody.root /usr/local/nginx –R
 
总结:各个语言各有利弊,也都有所需要的市场,现实环境会有更多的支持扩展和变换性,上面是轻量级的一个架构,还可以利用 Nginx 做负载,然后做单独的 Java 和 Perl 环境服务器,利用 Nginx 实现将不同语言的处理请求直接交给后端的环境服务器。

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

相关阅读:

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

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

深入剖析 Tomcat PDF http://www.linuxidc.com/Linux/2013-11/92595.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7961247
文章搜索
热门文章
星哥带你玩飞牛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中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

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

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...

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

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...