Windows11与CentOS7.9 2009下安装配置nginx后启动整个项目

news2024/11/14 3:01:35

Nginx是一款高性能的开源Web服务器和反向代理服务器,被广泛用于构建现代化的Web应用和提供静态内容。

一、Windows11下安装配置nginx

1.1 下载

nginx官网
这里下载nginx-1.24.0-zip
在这里插入图片描述
下载完成后,解压到D:\develop\nginx-1.24.0,解压完成后在文件管理器的地址栏输入cmd
在这里插入图片描述
输入start nginx启动nginx服务

在这里插入图片描述
正常情况下,会直接出现nginx的首页,默认IP地址http://localhost:80/
在这里插入图片描述

1.2 解决nginx默认端口80被占用

nginx默认使用80端口,如果80端口被占用就无法正常启动(我这里80端口后期被微软的Internet Information Services服务给占用了,所以默认会显示Internet Information Services的页面):
在这里插入图片描述
此时再输入start nginx是无法启动nginx服务的:

//查看nginx进程
tasklist /fi "imagename eq nginx.exe"

在这里插入图片描述
管理员身份启动cmd后启动nginx也无效
在这里插入图片描述

查看error.log(D:\develop\nginx-1.24.0\logs\error.log),80端口被使用了。
在这里插入图片描述

1.2.1 方法1-直接修改nginx的默认端口值(推荐)

D:\develop\nginx-1.24.0\conf\nginx.conf中修改listen的端口值
在这里插入图片描述
在这里插入图片描述
直接修改nginx的默认端口值80为81后,依次执行下列命令:

/1-进入nginx解压目录
d:
cd  D:\develop\nginx-1.24.0\

//2-启动nginx
start nginx

//3-查看nginx进程  如果显示 信息:没有运行的任务匹配指定标准  执行第4步
tasklist /fi "imagename eq nginx.exe"


//4-查看端口占用,根据端口号81,获取PID(进程ID)
netstat -ano | findstr "端口号"
netstat -ano | findstr "81"或netstat -ano | findstr 81

//5-查看PID对应的进程
tasklist | findstr "进程ID"

截图如下(可以证明81端口已经被配置给nginx.exe使用):
在这里插入图片描述
使用修改修改好的81端口访问(http://localhost:81/)
在这里插入图片描述

1.2.2 方法2-结束占用80端口的进程

结束占用80端口的进程

/1-进入nginx解压目录
d:
cd  D:\develop\nginx-1.24.0\

//2-启动nginx
start nginx

//3-查看nginx进程  如果显示 信息:没有运行的任务匹配指定标准  执行第4步
tasklist /fi "imagename eq nginx.exe"


//4-查看端口占用,根据端口号80,获取PID(进程ID)
netstat -ano | findstr "端口号"
netstat -ano | findstr "80"或netstat -ano | findstr 80

//5-根据PID结束进程
taskkill /F /PID PID值
或者
taskkill -f -pid PID值
或者(可能会直接结束该程序,相当于任务管理器中结束)
taskkill  /f /t /im PID值

结束占用80端口的进程截图如下:
在这里插入图片描述
根据PID值4结束进程,显示拒绝访问
在这里插入图片描述

1.3 关闭nginx

nginx -s stop

//查看nginx进程  如果显示 信息:没有运行的任务匹配指定标准 则代表关闭成功
tasklist /fi "imagename eq nginx.exe"

在这里插入图片描述
在这里插入图片描述
其他命令

//快速关机
nginx -s stop

//正常关机
nginx -s quit	

//重新加载(更改配置后使用新配置启动新工作进程)
nginx -s reload	

//重新打开日志文件
nginx -s reopen

二、CentOS7.9 2009下安装配置nginx

2.1 下载与安装配置

//1-安装依赖项
sudo yum install gcc pcre-devel zlib-devel openssl-devel

//2-下载Nginx源码包
//2-1-下载Nginx源码包
从https://nginx.org/en/download.html查找最新的版本,使用Stable version版本。 
nginx-1.24.0.tar.gz
//2-2--将下载好的tar包上传到centos701的目录中  /usr/local   nginx-1.24.0.tar.gz

或者

//2-下载Nginx源码包
//或者直接复制tar包链接(在Windows中右击复制tar包下载链接)

//2-1 CentOS系统安装wget
yum install wget -y
//2-2 Debian/Ubuntu系统安装wget,需要执行以下命令:
apt-get install -y wget

//2-2-使用wget获取nginx-1.24.0.tar.gz
wget https://nginx.org/download/nginx-1.24.0.tar.gz


3、安装
//3-1、解压安装包nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz

//3-2、进入解压后的目录nginx-1.24.0
cd  nginx-1.24.0




/4、 配置编译选项,包括启用HTTPS支持
//注意这里的目录就是/usr/local/nginx1.24.0
//如果报错就执行4-1、安装依赖项
//说明:因为后续需要安装SSL证书,所以添加了几个模块;如果不需要,可以执行./configure 。
./configure --prefix=/usr/local/nginx1.24.0 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module



参数说明:
--prefix=path:默认路径为/usr/local/nginx,可不配置。
--with-http_ssl_module:配置Nginx以启用HTTPS模块。
--with-http_v2_module:配置Nginx以启用HTTP2模块。
--with-http_stub_status_module:启用状态监控模块,允许查看Nginx的运行状态和统计信息。

说明:因为后续需要安装SSL证书,所以添加了几个模块;如果不需要,可以执行./configure 。




//4-1、安装依赖项
执行yum -y install gcc openssl-devel pcre-devel zlib-devel 
----
报错:2023-9-5 02:33:41
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx1.24.0 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module
checking for OS
 + Linux 3.10.0-1160.el7.x86_64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found


执行yum -y install gcc openssl-devel pcre-devel zlib-devel 后,
再次执行./configure --prefix=/usr/local/nginx1.24.0 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module 
不会再报错。
----



//4-2、编译和安装Nginx
//编译安装完成后,会发现多了一个nginx1.24.0文件夹
make && make install  


或者分别执行

//4-2、编译和安装Nginx
//编译安装完成后,会发现多了一个nginx1.24.0文件夹
//编译
make
//安装
sudo make install



//5、启动Nginx
//关闭防火墙
systemctl stop firewalld或systemctl stop firewalld.service

//进入nginx-1.24.0编译和安装生成的目录nginx1.24.0/sbin
cd /usr/local/nginx1.24.0/sbin

//启动nginx
./nginx

或者
sudo nginx


//6、查看nginx的进程
yum install net-tools -y
netstat -lntup | grep nginx

//查看启动的nginx进程
ps -ef | grep nginx

yum install lsof  
lsof -i :80



//7、关闭nginx:
./nginx -s stop

2.2 截图

1-安装依赖项sudo yum install gcc pcre-devel zlib-devel openssl-devel
在这里插入图片描述
在这里插入图片描述
2-1 CentOS系统安装wget命令-yum install wget -y
在这里插入图片描述
2-2-使用wget获取nginx-1.24.0.tar.gz
直接复制tar包链接(在Windows中右击复制tar包下载链接)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3-1、解压安装包nginx-1.24.0.tar.gz
在这里插入图片描述
解压后的文件夹-nginx-1.24.0 :
在这里插入图片描述
3-2、进入解压后的目录nginx-1.24.0 :
在这里插入图片描述
4、 配置编译选项,包括启用HTTPS支持

说明:因为后续需要安装SSL证书,所以添加了几个模块;如果不需要,可以执行./configure

注意-这里配置的目录是/usr/local/nginx1.24.0

./configure --prefix=/usr/local/nginx1.24.0 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module
【注意:若是报错直接执行这个命令
yum -y install gcc openssl-devel pcre-devel zlib-devel】

在这里插入图片描述

在这里插入图片描述
备用-这里配置的目录是/usr/local/nginx

--prefix=path:默认路径为/usr/local/nginx,可不配置。

说明:因为后续需要安装SSL证书,所以添加了几个模块;如果不需要,可以执行./configure

//这里配置的目录是nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
【注意:若是报错直接执行这个命令
yum -y install gcc openssl-devel pcre-devel zlib-devel】

在这里插入图片描述
在这里插入图片描述
4-2、编译和安装Nginx :
make && make install
在这里插入图片描述
在这里插入图片描述
或者分别执行
//编译
make
在这里插入图片描述
在这里插入图片描述
//安装
sudo make install
在这里插入图片描述
5、启动Nginx
在这里插入图片描述

//5、启动Nginx

//关闭防火墙
systemctl stop firewalld

//进入nginx-1.24.0编译和安装生成的目录nginx1.24.0/sbin
cd /usr/local/nginx1.24.0/sbin

//启动nginx
./nginx

或者
sudo nginx

启动防火墙同时开放nginx80端口
参考我这篇 查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程

//禁止防火墙开机启动。这种方法方便,但不安全。
systemctl disable firewalld

下面  设置CentOS7.9 2009 防火墙配置放开端口80

//1-防火墙设置开机自启
systemctl enable firewalld

//2-查询防火墙状态
systemctl status firewalld

//3-启动防火墙
systemctl start firewalld
//关闭防火墙
systemctl stop firewalld

//4-查询防火墙状态,确保已经启动active(running)
systemctl status firewalld

//5-查看防火墙是否放行nginx80端口 no:代表没开80端口,yes表示已开nginx80端口。
firewall-cmd --query-port=80/tcp

//6-设置永久放行Nginx80端口,”–permanent“参数表示,永久生效,没有此参数重启后失效,表示重启后80端口无法通过。
firewall-cmd --add-port=80/tcp --permanent

//7-【设置永久放行Nginx80端口,重启防火墙后才能查询到防火墙已经放行Nginx80端口。】
//返回no,需要重启防火墙才能更新为yes
firewall-cmd --query-port=80/tcp
//#重启防火墙
systemctl restart firewalld
//返回yes,表示永久放行Nginx80端口
//重启防火墙后再次查看就是yes,表示80端口已经永久放行
firewall-cmd --query-port=80/tcp

6、查看nginx的进程

在这里插入图片描述

在这里插入图片描述
关闭防火墙:
systemctl stop firewalldsystemctl stop firewalld.service
在这里插入图片描述
在这里插入图片描述
访问nginx(IP:80):
查看IP(ifconfig):
在这里插入图片描述

在Windows浏览器输入(IP:80),访问虚拟机CentOS7.9 2009的nginx
在这里插入图片描述7、关闭nginx:
./nginx -s stop
在这里插入图片描述
在这里插入图片描述

三、配置CentOS7.9 2009中nginx开机启动

3.1 命令

//1-修改rc.local文件的配置
//rc.local是个文件
//在/etc/rc.d/rc.local文件的末尾,添加 /usr/local/nginx1.24.0/sbin/nginx此程序文件的配置



//查看系统是否安装完整vim,如果正常安装肯定不止一行
rpm -qa|grep vim
//安装vim所有相关的包
 yum -y install vim*

//2-修改rc.local文件
vim /etc/rc.d/rc.local

//查看是否配置成功  
 cat /etc/rc.d/rc.local


//3-赋予执行权限(必须运行这个命令来确保boot时,脚本能够被执行)
chmod +x /etc/rc.d/rc.local




3.2 截图

在这里插入图片描述
修改rc.local文件 :
vim /etc/rc.d/rc.local
在这里插入图片描述

查看是否配置成功 :
cat /etc/rc.d/rc.local

在这里插入图片描述
3-赋予执行权限(必须运行这个命令来确保boot时,脚本能够被执行)
目前所有用户均无执行权限
在这里插入图片描述
chmod +x /etc/rc.d/rc.local 赋予执行权限:
在这里插入图片描述
赋予执行权限后,rc.local文件名称颜色会变成绿色,变深
在这里插入图片描述
所有用户都拥有了执行权限
在这里插入图片描述
重新启动服务器CentOS7.9 2009后,nginx已经可以开机自启,直接访问了,不需要再去执行./nginx 启动命令了:(此处在nginx中部署了前端的dist包)

//启动nginx
cd /usr/local/nginx1.24.0/sbin
./nginx 
或
./nginx -c  /usr/local/nginx1.24.0/conf/nginx.conf

在这里插入图片描述
查看nginx的进程 :

//查看nginx的进程
yum install net-tools -y
netstat -lntup | grep nginx

//查看启动的nginx进程
ps -ef | grep nginx

yum install lsof  
lsof -i :80

在这里插入图片描述

四、打包部署前端dist包

4.1 dist包

dist,即distribution,是Vue打包后生成的默认目录名称,里面包含了前端项目所需要的HTMLCSSJavaScript等资源文件。

npm run build 一般来说都是这个打包命令。

打包命令根据package.json文件中的命令中的配置来写,下面的打包命令就是npm run build:prodprodproduction的缩写,意思是打生产环境的包,其中的 SET NODE_OPTIONS=--openssl-legacy-provider 是为了解决Node.js版本过高的问题(Error:0308010C:digital envelope routines::unsupported)而添加的。
详情见我这篇文章
IDEA中Node.js环境下npm报错Error:0308010C:digital envelope routines:unsupported

npm相关安装配置等,参考我这篇文章:
安装配置nvm-windows对Node.js与npm进行版本控制

package.json文件中的命令中配置的打包命令

  "scripts": {
    "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
    "preview": "node build/index.js --preview",
    "lint": "eslint --ext .js,.vue src"
  },

启动防火墙同时开放nginx80端口`:
参考我这篇 查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程

//禁止防火墙开机启动。这种方法方便,但不安全。
systemctl disable firewalld

下面  设置CentOS7.9 2009 防火墙配置放开端口80

//1-防火墙设置开机自启
systemctl enable firewalld

//2-查询防火墙状态
systemctl status firewalld

//3-启动防火墙
systemctl start firewalld
//关闭防火墙
systemctl stop firewalld

//4-查询防火墙状态,确保已经启动active(running)
systemctl status firewalld

//5-查看防火墙是否放行nginx80端口 no:代表没开80端口,yes表示已开nginx80端口。
firewall-cmd --query-port=80/tcp

//6-设置永久放行Nginx80端口,”–permanent“参数表示,永久生效,没有此参数重启后失效,表示重启后80端口无法通过。
firewall-cmd --add-port=80/tcp --permanent

//7-【设置永久放行Nginx80端口,重启防火墙后才能查询到防火墙已经放行Nginx80端口。】
//返回no,需要重启防火墙才能更新为yes
firewall-cmd --query-port=80/tcp
//#重启防火墙
systemctl restart firewalld
//返回yes,表示永久放行Nginx80端口
//重启防火墙后再次查看就是yes,表示80端口已经永久放行
firewall-cmd --query-port=80/tcp

4.2 修改前端对应的后端地址

.env.production文件中配置VUE_APP_BASE_API值http://192.168.1.16:8080:
在这里插入图片描述
vue.config.js文件中的target值修改为http://192.168.1.16:8080
在这里插入图片描述
上面配置端口号要与配置的springboot内置Tomcat的端口一致
在项目目录下的src/main/resources中的application.yml文件,配置配置Tomcat端口8080:

#符号表示注释
#application.yml配置文件中指定Tomcat端口为8080
#application.yml与application.properties两个配置文件二选一
#Tomcat
server:
  port: 8080

或者

在项目目录下的src/main/resources中的application.properties文件,配置Tomcat端口8080:

#符号表示注释
#application.properties配置文件中指定Tomcat端口
#application.properties与application.yml两个配置文件二选一
server.port=8080

4.3 开始打包

在控制台打开
在这里插入图片描述

执行npm run build:prod打包命令:
在这里插入图片描述
在这里插入图片描述
出现下面的提示,就代表打包已经完成了
在这里插入图片描述
在文件管理器中查看dist包
在这里插入图片描述

4.4 部署dist包

dist包上传到指定目录/deploy/ruoyicloud_ui/
在这里插入图片描述
查看/deploy/ruoyicloud_ui/dist的项目结构:
在这里插入图片描述
修改nginx.conf中的配置

配置nginx.conf
/usr/local/nginx1.24.0/conf
/usr/local/nginx1.24.0/conf/nginx.conf

文件内容太多,为了便于修改,以及避免错误,建议下载到Windows中配置,配置好再上传回去。

//命令修改
vim /usr/local/nginx1.24.0/conf/nginx.conf

修改nginx.confroot htmlroot /deploy/ruoyicloud_ui/dist 访问打好的dist包,即我们刚刚上传的dist包所在的位置。

修改nginx.conf中的server_name localhostserver_name 192.168.1.16

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        #server_name  localhost;
		server_name  192.168.1.16;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            root  /deploy/ruoyicloud_ui/dist;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

重新加载配置文件nginx.conf :
因为刚刚修改了配置文件nginx.conf(修改nginx.confroot htmlroot /deploy/ruoyicloud_ui/dist 访问打好的dist包和修改nginx.conf中的server_name localhostserver_name 192.168.1.16。),所以要重新加载配置文件nginx.conf。

//检查Nginx配置是否正确,如果配置没有错误,将显示一条成功消息
cd /usr/local/nginx1.24.0/sbin
./nginx -t
或者/usr/local/nginx1.24.0/sbin/nginx -t



//如果需要修改配置文件 ,修改之后要重新加载配置文件
cd /usr/local/nginx1.24.0/sbin
./nginx -s reload


 //启动nginx
cd /usr/local/nginx1.24.0/sbin
./nginx 
或
./nginx -c  /usr/local/nginx1.24.0/conf/nginx.conf



#关闭nginx 
cd /usr/local/nginx1.24.0/sbin
./nginx -s stop # 停止

检查Nginx配置是否正确
//检查Nginx配置是否正确,如果配置没有错误,将显示一条成功消息
cd /usr/local/nginx1.24.0/sbin
./nginx -t
或者/usr/local/nginx1.24.0/sbin/nginx -t
在这里插入图片描述

到这一步,前端dist包就部署到了nginx中,nginx还设置了nginx开机自启,意味着打开服务器就可以直接访问到前端界面(地址:http://192.168.1.16:80)。

五、运行整个项目

5.1 后端说明

四个后端基础环境(mysql redis nacos seata-server)和三大服务模块(ruoyi-gateway ruoyi-auth ruoyi-system )共七个镜像和七个容器。

后端使用了docker容器运行各个服务模块,访问地址为http://192.168.1.16:8080

关键构建服务的镜像运行服务的容器等过程参考我这篇文章:
无法加载验证码libfreetype.so.6: cannot open shared object file: No such file or directory
3.3 三大模块中配置使用华为的镜像源开始看 。

【docker-compose.yml文件 与三大模块相关的内容】:
其中build参数表示环境配置的对象,表示./ruoyi2023731/auth下面的dockerfile文件。
/opt/docker-compose/ruoyicloudplus/docker/ruoyi2023731/auth/dockerfile

ruoyi-auth(认证授权中心):

ruoyi-auth:
    image: ruoyi/ruoyi-auth:1.7.0
    container_name: ruoyi-auth

    build:
      context: ./ruoyi2023731/auth
      #dockerfile的文件名称
      dockerfile: dockerfile


    environment:
      # 时区上海
      TZ: Asia/Shanghai
    ports:
      - "9210:9210"
    volumes:
      # 配置文件
      - /docker/ruoyi-auth/logs/:/ruoyi/auth/logs
      # skywalking 探针
      - /docker/skywalking/agent/:/ruoyi/skywalking/agent
    privileged: true
    network_mode: "host"

ruoyi-gateway(网关服务)

ruoyi-gateway:
    image: ruoyi/ruoyi-gateway:1.7.0
    container_name: ruoyi-gateway

    build:
      context: ./ruoyi2023731/gateway
      #dockerfile的文件名称
      dockerfile: dockerfile


    environment:
      # 时区上海
      TZ: Asia/Shanghai
    ports:
      - "8080:8080"
    volumes:
      # 配置文件
      - /docker/ruoyi-gateway/logs/:/ruoyi/gateway/logs
      # skywalking 探针
      - /docker/skywalking/agent/:/ruoyi/skywalking/agent
    privileged: true
    network_mode: "host"

ruoyi-modules中的ruoyi-system(系统模块)

ruoyi-system:
    # 镜像名 : 仓库/标签:版本
    image: ruoyi/ruoyi-system:1.7.0
    container_name: ruoyi-system

      #djc构建镜像-images的命令  2023-8-3 18:11:13
      # 指定dockerfile的上下文路径(相对当前docker-compose.yml的位置)
    # 包含Dockerfile文件的目录路径,或者是git仓库的URL。
    #当提供的值是相对路径时,它被解释为相对于当前compose文件的位置。
    #该目录也是发送到Docker守护程序构建镜像的上下文。
    build:
      context: ./ruoyi2023731/system
      #dockerfile的文件名称
      dockerfile: dockerfile
    #本来这里有个ports的,但显示与下面的ports冲突,可能只要配置一个就可以了,对位置没有太多要求

    #  depends_on: 依赖(以指定顺序启动)

    # links也可以起到和depends_on相似的功能,即定义服务之间的依赖关系,从而确定服务启动的顺序



    environment:
      # 时区上海
      TZ: Asia/Shanghai
    ports:
      - "9201:9201"
    volumes:
      # 配置文件
      - /docker/ruoyi-system/logs/:/ruoyi/system/logs
      # skywalking 探针
      - /docker/skywalking/agent/:/ruoyi/skywalking/agent
    privileged: true
    network_mode: "host"

无法加载验证码libfreetype.so.6: cannot open shared object file: No such file or directory
3.4.2 启动后端三大模块镜像(gateway-auth-system)开始看 。

执行脚本命令sh deploy.sh base,启动基础环境中nacos可能会报No dataset source错误,这是因为nacos的后台配置文件存放在mysql中,而mysql还没有完全启动成功nacos就已经启动了,导致无法加载配置文件。也就是说,必须mysql启动成功后,nacos才能加载到配置文件,才能完全启动成功。

建议使用构造完镜像后,后续使用可视化工具,如portainer,手动点击,先启动mysql,再启动nacos,这样更方便控制各个服务模块启动顺序

启动后端基础环境三大服务模块后,分别查看容器是否正常启动成功。(使用docker ps命令查看正在运行的容器是否包含四个后端基础环境(mysql redis nacos seata-server)三大服务模块(ruoyi-gateway ruoyi-auth ruoyi-system )共七个镜像和七个容器。

启动后端容器的步骤

//1-进入登录脚本文件所在的文件夹
cd /opt/docker-compose/ruoyicloudplus/docker/sh2023731

//2-启动后端基础环境mysql redis nacos seata-server
//实际执行docker-compose up -d mysql redis nacos seata-server
sh deploy.sh base

//3-启动服务ruoyi-gateway ruoyi-auth ruoyi-system  
//自动重新构建ruoyi-gateway和ruoyi-auth和ruoyi-system镜像和运行ruoyi-auth和ruoyi-system容器
//实际执行docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system
sh  deploy.sh  services

5.2 最新前后端运行步骤总结

前端dist包部署到了nginx中,nginx还设置了nginx开机自启,意味着启动了服务器就可以直接访问到前端界面(地址:http://192.168.1.16:80),不需要再去手动启动前端了,直接去手动启动后端容器服务,就可以运行整个项目。

手动启动前端(可忽略)

//启动nginx
cd /usr/local/nginx1.24.0/sbin
./nginx 
或
./nginx -c  /usr/local/nginx1.24.0/conf/nginx.conf

手动启动后端
执行完记得使用docker ps命令查看后端服务是否完全启动成功了

//1-进入登录脚本文件所在的文件夹
cd /opt/docker-compose/ruoyicloudplus/docker/sh2023731

//2-启动后端基础环境mysql redis nacos seata-server
//实际执行docker-compose up -d mysql redis nacos seata-server
sh deploy.sh base

//3-启动服务ruoyi-gateway ruoyi-auth ruoyi-system  
//自动重新构建ruoyi-gateway和ruoyi-auth和ruoyi-system镜像和运行ruoyi-auth和ruoyi-system容器
//实际执行docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system
sh  deploy.sh  services

最新手动上线步骤截图
在这里插入图片描述

5.3 启动截图

ruoyi-system:
在这里插入图片描述
ruoyi-auth:
在这里插入图片描述
ruoyi-gateway:
在这里插入图片描述
sh deploy.sh base
在这里插入图片描述
sh deploy.sh services
在这里插入图片描述

使用可视化工具portainer查看容器启动情况(后端基础环境mysql redis nacos seata-server和服务ruoyi-gateway ruoyi-auth ruoyi-system启动成功):

在这里插入图片描述
在这里插入图片描述

5.4 登录系统

在这里插入图片描述
在这里插入图片描述
登录成功
在这里插入图片描述
角色管理
在这里插入图片描述

5.5 关闭系统

//关闭  2023-8-19 20:18:01
//进入脚本文件所在的文件夹
cd /opt/docker-compose/ruoyicloudplus/docker/sh2023731

sh deploy.sh stop

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.6 sh2023731中的deploy.sh脚本内容

#!/bin/sh

# 使用说明,用来提示输入参数
usage(){
	echo "Usage: sh 执行脚本.sh [base|services|stop|rm]"
	exit 1
}

# 启动基础环境(必须)
base(){
	docker-compose up -d mysql redis nacos seata-server
}

# 启动程序模块(必须)
services(){
	docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system
}

# 关闭所有环境/模块
stop(){
	docker-compose stop
}

# 删除所有环境/模块
rm(){
	docker-compose rm
}

# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"base")
	base
;;
"services")
	services
;;
"stop")
	stop
;;
"rm")
	rm
;;
*)
	usage
;;
esac

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1969 [NOIP2013 提高组] 积木大赛

思路&#xff1a; ACcode: #include<bits/stdc.h> using namespace std; #define int long long const int N1e510; int n,a[N],ans; void solve() {cin>>n;for(int i1;i<n;i)cin>>a[i];int ans0;for(int i1;i<n;i){if(a[i]>a[i-1]) ansa[i]-a[i-1…

C语言,序列中删除指定数字

题目考点&#xff1a;对continue的运用&#xff08;也可以用&#xff01;来实现&#xff09; 先创建一个数组&#xff0c;数组大小应该要根据题目要求&#xff0c;根据数据范围&#xff0c;要设立一个大小为50的数组。 接着用scanf输入n的值&#xff0c;再设一个循环&#xff…

学生台灯买什么样的好?双十一学生台灯推荐

不得不说光线会孩子的影响还是蛮大的&#xff0c;不仅会影响学习的效率&#xff0c;还会影响视力健康。很多家长认为孩子近视的主要原因是玩电子产品或者不良的坐姿、用眼习惯导致的&#xff0c;其实这些并不全是造成近视的因素&#xff0c;最主要的原因还是长时间的用眼导致的…

您这边是个人公众号还是企业公众号哈

公众号迁移有什么作用&#xff1f;只能变更主体吗&#xff1f;公众号迁移不只是可以实现公众号变更公司主体&#xff0c;还可以实现个人公众号变成企业公众号、服务号改成订阅号&#xff08;不过订阅号暂时不能改成服务号了&#xff0c;最新的规定&#xff09;&#xff0c;开通…

Spring源码解析——创建AOP代理之获取增强器

正文 在上一篇的博文中我们讲解了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册&#xff0c;那么这个类到底做了什么工作来完成AOP的操作呢&#xff1f;首先我们看看AnnotationAwareAspectJAutoProxyCreator的层次结构&#xff0c;如下图所示&…

分类预测 | MATLAB实现KOA-CNN-BiGRU开普勒算法优化卷积双向门控循环单元数据分类预测

分类预测 | MATLAB实现KOA-CNN-BiGRU开普勒算法优化卷积双向门控循环单元数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiGRU开普勒算法优化卷积双向门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiGRU开普勒算法优化…

codesys【读写轴参数】

在SM3_Basic库内。 作用&#xff1a;读写实轴寄存器参数。【一般用于修改2000h段的值】 或者获取6041h的状态值。 ecat主站操作&#xff1a; 补偿间隙&#xff1a; 追剪&#xff1a; 凸轮&#xff1a; 读写轴参数&#xff1a;

史上最全 结构型模式之 桥接 外观 组合 享元模式

史上最全 结构型模式之 代理 适配器 装饰者 模式-CSDN博客 5.4 桥接模式 5.4.1 概述 现在有一个需求&#xff0c;需要创建不同的图形&#xff0c;并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系&#xff1a; 我们可以发现有很多的类&#xff0c;假…

idea中maven plugin提示not found

在终端中输入&#xff1a; mvn dependency:resolve 然后 解决了部分问题 Plugin org.apache.maven.plugins:maven-jar-plugin:3.1.0 not found 改为3.3.0了 Plugin maven-source-plugin:3.3.0 not found 改为 2.4 了 版本下降了 感觉后继有坑 待观察

Ubuntu安装QQ

原文网址&#xff1a;2023在Ubuntu安装最新版QQ Linux v3.1.0 - 哔哩哔哩 作者&#xff1a;sprlightning https://www.bilibili.com/read/cv22100663/ 出处&#xff1a;bilibili 2022年末QQ推出了QQ Linux v3.0系列&#xff0c;目前最新版是今年2月24日推出的v3.1.0版本。注意…

GLTF纹理贴图工具让模型更逼真

1、如何制作逼真的三维模型&#xff1f; 要使三维模型看起来更加逼真&#xff0c;可以考虑以下几个方面&#xff1a; 高质量纹理&#xff1a;使用高分辨率的纹理贴图可以增强模型的细节和真实感。选择适合模型的高质量纹理图像&#xff0c;并确保纹理映射到模型上的UV坐标正确…

[ROS2系列] ubuntu 20.04测试rtabmap

目录 背景&#xff1a; 一、配置 turtlebot3 二、安装RTAB-Map ROS2包&#xff1a; 三、启动 Turtlebot3 模拟器&#xff1a; 四、启动 RTAB 地图&#xff1a; 五、启动导航&#xff08;nav2_bringup应安装软件包&#xff09;&#xff1a; 背景&#xff1a; 1、设备&…

什么是企业远程访问

企业远程访问是一种安全策略&#xff0c;可为授权用户提供对本地网络之外的关键资源&#xff08;如服务器、数据库和应用程序&#xff09;的访问权限。企业不断发展&#xff0c;远程访问解决方案通过允许对关键端点的即时安全访问&#xff0c;帮助组织确保业务连续性并保持员工…

MySQL连接方式: Unix套接字 TCP/IP

今天连接mysql数据库使用mysql -u root -p指令的时候遇到了这个问题&#xff1a; 解决之后来总结一下mysql的连接方式 文章目录 1. Unix套接字&#xff08;或Windows命名管道&#xff09;特点&#xff1a;场景&#xff1a; 2. TCP/IP特点&#xff1a;场景&#xff1a; 3.对比总…

Linux系统管理:虚拟机Centos Stream 9安装

目录 一、理论 1.Centos Stream 9 二、实验 1.虚拟机Centos Stream 9安装准备阶段 2.安装Centos Stream 9 3.进入系统 一、理论 1.Centos Stream 9 (1) 简介 CentOS Stream 是一种 Linux 操作系统。安装此操作系统的难题在于&#xff0c;在安装此系统之前&#xff0c…

计算机毕业设计选什么题目好?springboot 旅游网站

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

第二证券:中签新股后怎么缴款?

跟着互联网金融的飞速发展&#xff0c;新股中签成为了一个热门话题。但是&#xff0c;对于新手来说&#xff0c;中签新股后怎样缴款仍是一个难点。本文将从多个视点来剖析这个问题&#xff0c;希望能协助我们更好地了解和把握该常识。 一、新股中签后需求缴款的原因 首要&…

【运维】一些团队开发相关的软件安装。

gitlab 安装步骤 (1) 下载镜像&#xff0c;并且上传到服务器 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.2.8-ce.0.el7.x86_64.rpm &#xff08;2&#xff09;rpm -i gitlab-ce-16.2.8-ce.0.el7.x86_64.rpm &#xff08;3&#xff09;安装成功后…

车载SBC芯片概论

+他V hezkz17进数字音频系统研究开发交流答疑群(课题 参考英飞凌SBC官网资料:https://www.infineon.com/cms/cn/product/automotive-system-ic/system-basis-chips-sbc/ SBC芯片在汽车电子领域可谓占一席之地了。那么什么是SBC?怎么用?用在哪里?主要特性? 1.什么是SBC?…