Linux下Nginx+Tomcat+Redis实现集群(小白向,因为我也是小白)

说明啊,本蝶用的是虚拟机CentOS 7 x64,i7-8700k分配的2核心2线程,4GB DDR4 3600内存。

本文章讲解步骤:1.Redis集群搭建。2.JDK环境搭建。3.Tomcat集群搭建。4.NFS配置共享目录。5.Nginx配置。

首先,准备两个工具:Xshell,WinSCP。

什么?哪里下载?这里下载:www.baidu.com

第一步:Redis集群搭建(从安装到运行)

访问Redis官方:https://redis.io,然后下载Redis最新版。

下载到哪儿?当然是下载到你放满片子的盘里了!

ok,这会儿WinSCP派上用场了。用WinSCP连接你的Linux。

然后将你下载片子的拖到你Linux上/home文件夹下。

嗯对,将你下载Redis的压缩包拖到你Linux上/home文件夹下。

然后使用Xshell连接你的Linux。然后到home目录下。

然后使用tar命令解压你的下载的片子。……。你下载的Redis压缩包。

命令:tar zxvf 压缩包名称,比如我的是:tar zxvf redis-5.0.4.tar.gz。

进入你刚刚解压好的Redis目录。

因为编译需要使用gcc,所以我们需要先安装gcc。gcc是什么?我也不知道,我也小白啊。照做就是了。

命令:yum install gcc。碰到确认提示的时候一律输入y就行了。

安装完后使用make MALLOC=libc命令对Redis进行编译。为什么这样做?因为直接使用make会报错,为什么报错?我也不知道,我也小白啊。

然后等就是了,编译完如下图。

然后安装Redis。使用命令make install PREFIX=/home/redis。

命令:make install PREFIX=安装路径。安装完成如下图。

使用 cd ../回到上层目录,并使用ls命令可以看到安装好的redis文件夹。也可以使用WinSCP看。

现在使用WinSCP到redis解压目录,把redis.conf复制到redis安装目录下的bin里。然后到bin目录下右键--编辑。搜索下方几个配置项并修改。

1.bind 127.0.0.1 改 bind 服务器IP,如我的:bind 192.168.31.106

2.port 6379 改 port 6000,说明:搭建集群从6000开始好数,没有别的原因。

3.# cluster-enabled yes,把前面的#去掉。该配置项的意思是 是否启用集群模式。

4.# cluster-config-file nodes-6379.conf 把前面的#去掉并改为:cluster-config-file nodes.conf, nodes-6379.conf是生成集群配置的文件名,改文件名纯属为了方便统一,没有别的原因。

5.# cluster-node-timeout 15000,把前面的#去掉,该配置项的意思是超时时间,单位毫秒。

6.daemonize no 改 daemonize yes,意思是后台运行。

然后保存。

PS:这些是开启集群的基本配置,更深入的优化配置等自行百度学习把,因为我也是个小白。

然后将redis安装目录复制5份,这样就一共有6个redis了。为什么?自己百度查吧,我也是小白,我只知道这样有3个主redis,3个从redis。如果有一个出问题了,redis集群之间能更精确的判断哪个出了问题。总之是为了保证集群能够稳定运行。

复制命令:cp -a 源目录/ 新目录。

然后使用WinSCP分别进入各个redis目录下的bin,修改redis.conf,分别把port端口数+1。

比如我现在的端口分别是:6000,6001,6002,6003,6004,6005。

然后启动这六个redis,这里写一个批量运行。

在你的电脑桌面新建文本文档,改名run-redises.sh。然后编辑内容,复制以下内容。

cd redis/bin;

./redis-server redis.conf;

cd ../../;

cd redis1/bin;

./redis-server redis.conf;

cd ../../;

cd redis2/bin;

./redis-server redis.conf;

cd ../../;

cd redis3/bin;

./redis-server redis.conf;

cd ../../;

cd redis4/bin;

./redis-server redis.conf;

cd ../../;

cd redis5/bin;

./redis-server redis.conf;

cd ../../;

什么?复制粘贴后没有换行?没有换行那就对了。

然后用WinSCP拖到Linux的home目录下。然后用Xshell给run-redises.sh分配权限。

命令:chmod 777 run-redises.sh。

然后运行run-redises.sh。命令:./run-redises.sh

有没有批量停止的命令?参考上面自己写。我才不管你们那么多呢。

————下面的绝对不是批量停止命令——————————————————————

cd redis/bin;

./redis-cli -c -h 192.168.31.106 -p 6000 shutdown;

cd ../../;

cd redis1/bin;

./redis-cli -c -h 192.168.31.106 -p 6001 shutdown;

cd ../../;

cd redis2/bin;

./redis-cli -c -h 192.168.31.106 -p 6002 shutdown;

cd ../../;

cd redis3/bin;

./redis-cli -c -h 192.168.31.106 -p 6003 shutdown;

cd ../../;

cd redis4/bin;

./redis-cli -c -h 192.168.31.106 -p 6004 shutdown;

cd ../../;

cd redis5/bin;

./redis-cli -c -h 192.168.31.106 -p 6005 shutdown;

cd ../../;

————————————————————————————————————

6个redis都启动起来后,随便进入一个redis的bin目录下,运行以下命令开启集群,具体IP和端口按照你们自己的来写。

./redis-cli --cluster create 192.168.31.106:6000 192.168.31.106:6001 192.168.31.106:6002 192.168.31.106:6003 192.168.31.106:6004 192.168.31.106:6005 --cluster-replicas 1

说明:--cluster-replicas 1 的意思是每个主redis都有1个从reids。

出现提示后输入yes。然后等待成功。

如何测试?进入redis下的bin里,使用命令./redis-cli -c -h 192.168.31.106 -p 6001。

命令说明:./redis-cli -c(集群模式) -h IP -p 端口

然后使用命令  set name dieyi

然后Ctrl+C退出,再使用命令连接另一个redis。命令:./redis-cli -c -h 192.168.31.106 -p 6003。

然后使用命令:get name。

如果发现能正常取出值,那说明成功了。

 

第二步:JDK环境搭建

首先去oracle官方下载jdk,怎么下载?去这里下载:www.baidu.com

下载完后用WinSCP拖到Linux服务器上home目录下。

然后使用tar命令解压jdk的压缩包。命令:tar zxvf 压缩包名称

然后用WinSCP编辑 /etc/profile。写入以下内容,JAVA_HOME的值按照自己jdk解压的位置来写。

#java config
export JAVA_HOME=/home/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


然后执行 source /etc/profile 使环境变量生效!
然后输入命令:java -version 测试

这样 JDK就安装完了。

3.Tomcat集群搭建(从安装到运行再到配置Redis)

首先下载Tomcat:https://tomcat.apache.org/download-80.cgi

然后用WinSCP拖到你的Linux服务器/home目录下(为什么这步没图?这样的简单步骤咱们已经重复两次了)

然后使用tar命令解压Tomcat的压缩包,这步也没图,原因同上。

然后进入Tomcat目录下的/bin里,然后输入命令 ./startup.sh 就可以启动tomcat。

然后关闭CentOS 7自带的firewall防火墙,并禁止开机启动。

关闭防火墙命令:systemctl stop firewalld.service

禁止开机启动命令:systemctl disable firewalld.service

为啥关?别问我往下看

这会儿在浏览器里输入你的服务器IP加端口8080,比如我的是:192.168.31.106:8080,看到以下界面表示访问成功。

emmmm……水不动了,以后再说吧!

wget使用方法

1、使用wget下载单个文件

以下的例子是从网络下载一个文件并保存在当前目录

[cc lang="bash"]wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip[/cc]
在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

2、使用wget -O下载并以不同的文件名保存

wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。

错误:下面的例子会下载一个文件并以名称download.php?id=1080保存

[cc lang="bash"]wget http://www.centos.bz/download?id=1[/cc]
即使下载的文件是zip格式,它仍然以download.php?id=1080命令。

正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:

[cc lang="bash"]wget -O wordpress.zip http://www.centos.bz/download.php?id=1080[/cc]
3、使用wget –limit -rate限速下载

当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

[cc lang="bash"]wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip[/cc]
4、使用wget -c断点续传
使用wget -c重新启动下载中断的文件:

[cc lang="bash"]wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip[/cc]
对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

5、使用wget -b后台下载
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。

[cc lang="bash"]wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip[/cc]
你可以使用以下命令来察看下载进度

[cc lang="bash"]tail -f wget-log[/cc]
6、伪装代理名称下载

有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过–user-agent参数伪装。

[cc lang="bash"]wget –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16″ http://下载链接[/cc]
7、使用wget –spider测试下载链接

当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。

[cc lang="bash"]wget –spider URL[/cc]
8、使用wget –tries增加重试次数

如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用–tries增加重试次数。
[cc lang="bash"]
wget –tries=40 URL[/cc]
9、使用wget -i下载多个文件

[cc lang="bash"]wget -i filelist.txt[/cc]
#filelist.txt为下载url列表
url1
url2
url3
url4
10、使用wget –mirror镜像网站

下面的例子是下载整个网站到本地。

[cc lang="bash"]wget –mirror -p –convert-links -P ./LOCAL URL[/cc]
–miror:开户镜像下载
-p:下载所有为了html页面显示正常的文件
–convert-links:下载后,转换成本地的链接
-P ./LOCAL:保存所有文件和目录到本地指定目录
11、使用wget –reject过滤指定格式下载

你想下载一个网站,但你不希望下载图片,你可以使用以下命令。

[cc lang="bash"]wget –reject=gif url[/cc]

12、使用wget -o把下载信息存入日志文件

你不希望下载信息直接显示在终端而是在一个日志文件,可以使用以下命令:
[cc lang="bash"]
wget -o download.log URL[/cc]
13、使用wget -Q限制总下载文件大小

当你想要下载的文件超过5M而退出下载,你可以使用以下命令:

[cc lang="bash"]wget -Q5m -i filelist.txt[/cc]
注意:这个参数对单个文件下载不起作用,只能递归下载时才有效。

14、使用wget -r -A下载指定格式文件

下载一个网站的所有PDF文件

[cc lang="bash"]wget -r -A.pdf [/cc]url[/cc]
15、使用wget FTP下载

你可以使用wget来完成ftp链接的下载。

使用wget匿名ftp下载

[cc lang="bash"]wget ftp-url[/cc]
使用wget用户名和密码认证的ftp下载

[cc lang="bash"]wget –ftp-user=USERNAME –ftp-password=PASSWORD url[/cc]
16、断点续传

当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c参数,例如:

[cc lang="bash"]wget -c http://the.url.of/incomplete/file[/cc]
使用断点续传要求服务器支持断点续传。-t参数表示重试次数,例如需要重试100次,那么就写-t 100,如果设成-t 0,那么表示无穷次重试,直到连接成功。-T参数表示超时等待时间,例如-T 120,表示等待120秒连接不上就算超时。

17、选择性的下载

可以指定让wget只下载一类文件,或者不下载什么文件。例如:

[cc lang="bash"]wget -m –reject=gif http://target.web.site/subdirectory[/cc]
表示下载http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件类型,–reject=LIST拒绝接受的文件类型。

18、密码和认证

wget只能处理利用用户名/密码方式限制访问的网站,可以利用两个参数:
[cc lang="bash"]
–http-user=USER设置HTTP用户
–http-passwd=PASS设置HTTP密码[/cc]
对于需要证书做认证的网站,就只能利用其他下载工具了,例如curl。

19、利用代理服务器进行下载

如果用户的网络需要经过代理服务器,那么可以让wget通过代理服务器进行文件的下载。此时需要在当前用户的目录下创建一个.wgetrc文件。文件中可以设置代理服务器:

[cc lang="bash"]http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080[/cc]
分别表示http的代理服务器和ftp的代理服务器。如果代理服务器需要密码则使用:

–proxy-user=USER设置代理用户
–proxy-passwd=PASS设置代理密码
使用参数–proxy=on/off 使用或者关闭代理。

20、中文文档名在平常的情况下会被编码, 使用–cut-dirs时可以正常显示

[cc lang="bash"]wget -r -np -nH –cut-dirs=3 ftp://host/test/[/cc]

以上转自:http://www.jb51.net/LINUXjishu/86326.html

Deepin 突然无法启动

Failed to start file system

原因不清楚 可能是微信的问题
解决方法:
1.启动到Deepin修复系统
2.打开磁盘工具
3.卸载挂载到/Home的磁盘,右键选择修复该磁盘
4.重启恢复正常

Linux HCML启动器 食用方法

点这里查看更简单的方法

 

下载好HCML启动器后(HMCL-3.2.112.jar)

下载Java包

解压下载的Java包 进入
/jre/bin/
在此处打开终端输入
$ java -jar HMCL-3.2.112.jar

启动

如果出现以下报错

输入

$apt-get install openjdk  openjfx -y

它会自动安装好依赖再重新执行刚才的命令启动即可
注意:不要用openjava的命令启动 ,不用系统安装的java
应该这样启动:
$从官网下载的java包/bin/java -jar /HCML.jar

之后编写个HCML.desktop文件方便启动就行了