Linux下安装Redis,Nginx并部署前后端分离项目
1.nohup
- nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
- nohup 是 no hang up 的缩写,就是不挂断的意思。
- nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
- 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
- 首先使用 which nohup 查看linux服务器是否安装nohup
- 如果显示 /usr/bin/nohup 说明已经安装 ,如果没有,说明需要安装,如下:
1. 下载nohup
yum install coreutils
2.查看下载的nohup
cd /usr/bin
which nohup
3.配置nohup路径,全局使用
vi ~/.bash_profile
在PATH= $PATH: $HOME/bin后面添加:/usr/bin
4.配置的nohup立即生效,刷新配置变量
source ~/.bash_profile
5.查看版本
nohup --version
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
2.安装Redis
可以去官下载最新版 https://redis.io/download/
也可以下载指定版本 https://download.redis.io/releases/
直接下载压缩包 然后通过filezilla.exe 上传到linux服务器
1.解压Redis
tar -zxvf redis-7.0.9.tar.gz
也可以用 -C 指定解压路径 一般在/usr/local/redis 下
tar -zvxf redis-7.0.9.tar.gz -C /usr/local/redis
2.redis-7.0.9 目录就是我们解压好的目录
3.由于Redis是C++写的,所以还要安装gcc
可以用gcc --version 查看是否安装gcc ,执行出来版本号,说明安装了,否则需要安装
也可以使用 whereis gcc #查看gcc的位置
安装gcc命令 yum install gcc-c++
4.安装Redis
进入到redis目录,执行make命令进行编译:(编译内容过长,只截图了开头结尾)
安装Redis命令: make PREFIX=/usr/local/redis install
5.查看Redis是否安装成功
redis-cli -v 如果该命令提示 -bash: redis-cli: 未找到命令
使用绝对路径执行 用whereis redis 查看安装路径 实在redis安装目录下的根目录bin
/usr/local/redis/bin/redis-cli -v
6.启动Redis
进入Redis安装根目录
[root@master bin]# cd /usr/local/redis/bin/
[root@master bin]# ll
总用量 21532
-rwxr-xr-x. 1 root root 5197848 4月 14 13:02 redis-benchmark
lrwxrwxrwx. 1 root root 12 4月 14 13:02 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root 12 4月 14 13:02 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 5411184 4月 14 13:02 redis-cli
lrwxrwxrwx. 1 root root 12 4月 14 13:02 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 11428616 4月 14 13:02 redis-server
[root@master bin]# ./redis-server
后台启动redis
我们也可以更改Redis配置,将redis以守护进程形式挂在后台,不会显示图形界面
可以将redis解压目录下的redis.conf文件拷贝到redis-server 目录下 ,便于启动时指定配置文件
cp redis.conf /usr/local/redis/bin/
vi redis.conf
将daemonize 将no修改为yes 以守护进程运行 注:windows下不支持守护进程方式
vi redis.conf 找不到可以用 /daemonize 回车搜索
设置Redis密码
requirepass 找不到可以用 /requirepass 回车搜索
配置远程链接Redis
protected-mode 将yes改为no
Redis保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,
所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将yes改为no
外网远程链接 也需将 bind 127.0.0.1 注释 或者改为 bind *
protected-mode 控制了是否可以远程访问
指定配置文件启动Redis
./redis-server redis.conf
查看进程
查看Redis日志
[root@master bin]# /usr/local/redis/bin/redis-cli -p 6379 #链接Redis
127.0.0.1:6379> slowlog get 5
(error) NOAUTH Authentication required. #出现这个 是需要你输入密码
127.0.0.1:6379> auth redis密码
OK
127.0.0.1:6379> slowlog get 5
(empty array)
127.0.0.1:6379> slowlog len
(integer) 0
127.0.0.1:6379>
3.将jar包上传到linux服务器部署
可以使用filezilla.exe 连接服务器进行上传文件
#使用nohup 将jar包挂在后台启动 ,同时将日志输出到nohup.out
nohup java -jar five-six-server-0.0.1-SNAPSHOT.jar &
启动jar包,查看日志
我们也可以使用shell脚本
使用 touch start.sh 创建一个start.sh 的启动文件
授予权限 chmod +x start.sh
使用 vi start.sh 写入下边内容 使得每次启动都会创建一个 fivesix年月日时分秒.log日志文件 (
例如:fivesix2023-04-12 17:12:04.log)
#!/bin/bash
nohup java -jar five-six-server-0.0.1-SNAPSHOT.jar > fivesix"$(date +"%Y-%m-%d %H:%M:%S")".log 2>&1 &
使用 cat fivesix年月日时分秒.log 查看日志
也可以 使用 tail -1000f fivesix年月日时分秒.log 查看日志
注意:nohup: 重定向标准错误到标准输出 如果碰到这种情况 加上2>&1
解释:
1代表:标准输出(STDOUT)
2代表:标准错误(STDERR)
2>&1
表示把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里 面了,也就是nohup.out 。
4.查看是否存在进程
ps -ef|grep java(或者 jar包名字.jar)
5.使用Nginx部署前端
1.下载Nginx安装包
2.上传到linux并解压
#配置configure --prefix 代表安装的路径,--with-http_ssl_module 安装ssl,--with-http_stub_status_module查看nginx的客户端状态
./configure --prefix=/usr/local/nginx-1.20.2 --with-http_ssl_module --with-http_stub_status_module
3. 使用 ./configure自动配置nginx
使用默认配置,在nginx安装根目录下执行(一般在 nginx: /usr/local/nginx )
也可以用 whereis nginx 来查看nginx安装目录 例: nginx: /usr/local/nginx
./configure 自动配置Nginx
#编译安装nginx 待 ./configure执行完成 依次执行make make install
make
make install
6.配置发布前端:
1.在nginx安装目录下 html目录下新建waves(名字随意)目录 也可省略,可放多个前端包
2.将前端包放在目录下并解压
3.配置nginx代理
server {
listen 8086;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/nginx/html/fivesixFrontEnd/mycli3/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://192.168.68.135:8443/film;
}
}
5. Nginx常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
./nginx -s reload 重启Nginx
Nginx报错解决
使用下面命令和结果截图