阿里云部署-liujian

方案一

一、方案简介

一台nginx服务,主要负责主入口分发
两台应用服务器:
1.服务器一部署-nginx、前端应用、后端应用
2.服务器二部署-nginx、两个后端服务器
一台数据库服务器:mysql、redis
本文档以ruoyi前后端分离项目为准

注意:

  1. vim编辑命令操作

       vim 四种模式

       vim 文件 处于正常模式

    在正常模式下输入:i I a A等键,进入插入模式,可以进行文档修改,按esc键退出插入模式返回正常模式

    在正常模式下按:(英文冒号)或/,进入命令模式

       常用命令:q(退出) q!(强制退出,不保存) w(保存) wq(保存并退出)
  2. 修改profile环境变量时,切记能复制就复制,不要手写,可能存在系统崩溃的风险

二、软件安装

1.nginx安装
  1. 环境准备
  1. 下载地址:
  • https://nginx.org/en/download.html
  • https://nginx.org/download/nginx-1.18.0.tar.gz
  1. 安装vim、make、ifconfig等工具:yum install -y vim make net-tools wget
  2. 安装依赖:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  3. 关闭selinux(阿里云默认关闭):
  • 进入目录: cd /etc/selinux
  • 编辑文件: vim config
  • 设置文档: SELINUX=disabled
  • 编译修改文件或重启系统
  1. 安装步骤
  1. 将下载好的文件传入到指定文件夹(直接使用wget下载)
cd /home/packages
wget https://nginx.org/download/nginx-1.18.0.tar.gz
  1. 进入该文件夹下并解压:
  • 进入目录: cd /home/packages
    –没有目录需要创建:mkdir packages
  • 解压文件: tar -zxvf nginx-1.18.0.tar.gz
  1. 进入解压后的文件夹: cd /home/packages/nginx-1.18.0/
  2. 隐藏nginx信息:
  • 进入目录: cd /home/packages/nginx-1.18.0/src/core/
  • 找到文件: nginx.h
  • 编辑文件: vim nginx.h
#define NGINX_VERSION      ""                 -- 隐藏版本号
#define NGINX_VER          "" NGINX_VERSION  -- 隐藏服务名
...
#define NGINX_VAR          ""                 -- 
  1. 返回目录: cd /home/packages/nginx-1.18.0/
  2. 配置nginx:./configure --prefix=/home/nginx [–with-http_ssl_module 支持HTTPS协议]
./configure --prefix=/home/nginx  --with-http_ssl_module

出现如下显示说明配置成功
Configuration summary
 + using system PCRE library
 + OpenSSL library is not used
 + using system zlib library
 ...
  1. 编译安装: make && make install
  2. 进入目录: cd /home/nginx
  3. 查看文件: ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp
  1. 执行启动命令: ./sbin/nginx
  2. 验证是否安装成功

    ps -ef | grep nginx
root      155361       1  0 Jul14 ?        00:00:00 nginx: master process ./nginx
nobody    235997  155361  0 09:18 ?        00:00:00 nginx: worker process
root      236900  236148  0 13:57 pts/1    00:00:00 grep --color=auto nginx
  1. 重启
  1. 注册服务
  1. 进入目录: cd /lib/systemd/system/
  2. 创建文件: vim nginx.service
  3. 复制以下内容并保存退出:
[Unit]
## 描述
Description=nginx - high performance web server
## 文档地址
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
## nginx.pid位置,一般在logs下,可不写
PIDFile=/home/nginx/logs/nginx.pid
## 启动前的准备
ExecStartPre=/home/nginx/sbin/nginx -t -c /home/nginx/conf/nginx.conf 
## nginx启动命令
ExecStart=/home/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf
## nginx重启
ExecReload=/bin/kill -s HUP $MAINPID
## nginx停止
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
  1. 执行命令:systemctl daemon-reload
  2. nginx命令:
在执行前请确认nginx是否启动
ps -ef | grep nginx
root      155361[进程号]       1  0 Jul14 ?        00:00:00 nginx: master process ./nginx
nobody    235997[进程号]  155361  0 09:18 ?        00:00:00 nginx: worker process
root      236900  236148  0 13:57 pts/1    00:00:00 grep --color=auto nginx
需要杀死进程
# kill -9 进程号
kill -9 155361 235997

systemctl start nginx.service
systemctl restart nginx.service
systemctl stop nginx.service
  1. 加入开机自启:
systemctl enable nginx.service
# 出现该行证明成功
# Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
2.mysql安装
  1. 安装步骤

进入home目录,创建packages目录

cd /home
mkdir packages
cd packages

下载repo文件

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

进行repo安装

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

安装mysql服务

yum install mysql-server -y --nogpgcheck

启动mysql服务

systemctl start mysqld

配置mysql服务开机自启

systemctl enable mysqld
  1. 配置mysql

查看mysql临时密码(mysql8.* 密码默认为空,直接回车即可)

grep 'temporary password' /var/log/mysqld.log
# 2022-08-18T13:29:02.125493Z 1 [Note] A temporary password is generated for root@localhost: q1ezp=/yzh_O
注意:不要放过任何特殊字符

使用命令进入mysql控制台

mysql -uroot -p

登陆成功后先修改密码(mysql7和mysql8修改密码方式不一样)
mysql7 修改密码方式
1.首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可:

set global validate_password_policy=LOW; 

2.当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可:

set global validate_password_length=6;

注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,只要设置 密码的长度小于 3 ,都将自动设值为 4。
3.修改密码(mysql8直接执行此步骤即可)

ALTER USER '[用户名]'@'[主机地址]' IDENTIFIED BY '[密码]'; 
示例: ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

4.开启远程访问
方式一:

use mysql;
select host,user from user;
update user set host='%' where user='root';

方式二:

grant all privileges on 数据库名.表名 to 创建的用户名(root)@"%" identified by "密码";
示例: grant all privileges on *.* to "root"@"%" identified by "123456";

5.最后刷新一下: flush privileges;

3.redis安装

  1. 安装步骤

1.使用yum源安装

yum install -y redis

2.配置redis

打开redis配置文件
vim /etc/redis.conf

必须在显示模式
开启行号显示
:set number
搜索
/bind

按键盘I键进入编辑模式
# 注释第61行,开启远程链接,也可以绑定IP地址,禁止其他访问,绑定多个IP地址 跟空格即可
# bind 127.0.0.1
bind 127.0.0.1 192.168.0.1

修改128行 开启redis进程守护
daemonize yes

修改480行,开启密码登陆
requirepass 123456
注意:密码强度要高

按esc返回显示模式
输入:wq + enter 保存退出

  1. 开启redis服务
systemctl start redis
  1. 开启开机自启动
systemctl enable redis

4.jdk安装

  1. 下载地址
https://www.oracle.com/java/technologies/downloads/
https://talktu.top/downloadFile/jdk-8u341-linux-x64.tar.gz
  1. 安装步骤
  1. 进入packages文件夹: cd /home/packages

  2. 下载下来的安装包上传到指定文件夹下

    使用xftp 上传下载的文件到指定文件夹(这里上传至/home/packages)

  3. 解压文件: tar -zxvf jdk-8u341-linux-x64.tar.gz

  4. 移动文件夹至home文件夹下: mv jdk1.8.0_341/ ../

  1. 配置环境变量
  1. 使用命令打开profile文件
vim /etc/profile
  1. 在配置文件的最下面加入配置信息
# java environment
export JAVA_HOME=/home/jdk1.8.0_341
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
  1. 执行命令让环境变量生效

source /etc/profile./etc/profile
4. 检查是否配置成功

java -version 

java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)

5.maven安装(项目打包)

  1. 下载地址
https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
  1. 安装步骤
  1. 进入packages文件夹
cd /home/packages
  1. 使用wget下载安装包
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
  1. 使用tar命令解压文件
tar -zxvf apache-maven-3.8.6-bin.tar.gz
  1. 将文件夹移动至home目录下
mv apache-maven-3.8.6 ../
  1. 环境变量配置
  1. 使用命令打开profile文件
vim /etc/profile
  1. 在配置文件的最下面加入配置信息
# maven environment
export MAVEN_HOME=/home/apache-maven-3.8.6
export PATH=${PATH}:${MAVEN_HOME}/bin
  1. 执行命令让环境变量生效
    source /etc/profile./etc/profile
  2. 检查是否配置成功
mvn -version 

Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /home/apache-maven-3.8.6
Java version: 1.8.0_341, vendor: Oracle Corporation, runtime: /home/jdk1.8.0_341/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-348.20.1.an8_5.x86_64", arch: "amd64", >family: "unix"
  1. 使用maven打包(建议使用Windows电脑下载idea进行项目打包)

写在前面: 一定要修改数据库,redis等配置文件后上传,或者上传后使用vim命令修改

  1. 将项目上传至指定目录

    使用xftp上传至指定目录(这里将ruoyi上传至/home/programs),没有programs文件夹,需要新建
  2. 使用命令进入项目RuoYi-Vue-master
cd /home/programs/RuoYi-Vue-master
  1. 使用maven命令进行后端项目打包(如果中途卡住,ctrl+C停止后重试该命令)
 mvn clean package -DskipTests

[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ruoyi 3.8.3:
[INFO] 
[INFO] ruoyi .............................................. SUCCESS [  0.114 s]
[INFO] ruoyi-common ....................................... SUCCESS [ 13.553 s]
[INFO] ruoyi-system ....................................... SUCCESS [  0.455 s]
[INFO] ruoyi-framework .................................... SUCCESS [  2.854 s]
[INFO] ruoyi-quartz ....................................... SUCCESS [  0.192 s]
[INFO] ruoyi-generator .................................... SUCCESS [  0.268 s]
[INFO] ruoyi-admin ........................................ SUCCESS [ 13.529 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  33.692 s
[INFO] Finished at: 2022-08-20T13:52:22+08:00
[INFO] ------------------------------------------------------------------------
  1. 打包后的文件地址(*表示项目名)

    /home/programs/RuoYi-Vue-master/ruoyi-admin/target/*.jar

6.node.js安装(项目打包)

  1. 下载地址
https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz
  1. 安装步骤
  1. 进入packages文件夹
cd /home/packages
  1. 使用wget下载安装包
wget https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz
  1. 使用tar命令解压文件
tar xf node-v16.17.0-linux-x64.tar.xz
  1. 将文件夹移动至home目录下
mv node-v16.17.0-linux-x64 ../
  1. 环境变量配置
  1. 使用命令打开profile文件
vim /etc/profile
  1. 在配置文件的最下面加入配置信息
# node environment
export NODE_HOME=/home/node-v16.17.0-linux-x64
export PATH=${PATH}:${NODE_HOME}/bin
  1. 执行命令让环境变量生效
    source /etc/profile./etc/profile
  2. 检查是否配置成功
node -v

v16.17.0

npm -v

8.15.0
  1. 使用node打包(建议使用Windows电脑下载idea进行项目打包)
  1. 进入ruoyi-ui目录
cd /home/programs/RuoYi-Vue-master/ruoyi-ui

执行 npm install命令,下载环境

npm install --registry=https://registry.npmmirror.com

added 1600 packages in 45s
npm notice 
npm notice New minor version of npm available! 8.15.0 -> 8.18.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.18.0
npm notice Run npm install -g npm@8.18.0 to update!
npm notice 
  1. npm打包项目
npm run build:prod

Images and other types of assets omitted.
DONE  Build complete. The dist directory is ready to be deployed.
INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
  1. 将生成的文件夹dist修改名称并移动至前端项目目录
mv dist ruoyi-ui
mv ruoyi-ui /home/nginx/html/

node 打包完成

四、系统配置

1.nginx服务器配置

    upstream prod-api {
        # 服务器一内网地址
        server 127.0.0.1;
        # 服务器二内网地址
        server 127.0.0.1;
    }   

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /prod-api {
            proxy_pass http://prod-api;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location / {
            # 服务器一内网地址
            proxy_pass http://127.0.0.1;
        }
    }

服务器一 nginx配置

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        # 后端项目访问
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            # 本地项目地址:端口号
            proxy_pass http://localhost:8080/;
        }
        
        # vue2前端静态资源文件
        location / {
            # 前端项目存放地址 /home/nginx/html/ruoyi-ui
            root   /home/nginx/html/ruoyi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
        
        # ---------vue3需要的配置
        location @router {
            rewrite ^.*$ /index.html last;
        }
        
        location / {
            alias /home/nginx/html/ruoyi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
        # ---------vue3需要增加的配置 end
        
        #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;
        }
    }    

服务器二 nginx配置

    upstream prod-api {
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }  
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # 后端项目访问
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://prod-api/;
        }
        
        location / {
            root   html;
            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;
        }
    }    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值