主页 > 开源代码  > 

vue+express、giteepm2部署轻量服务器

vue+express、giteepm2部署轻量服务器

一、代码配置

前后端接口都保持 127.0.0.1:3000

vue创建文件 pm2.config.cjs

module.exports = { apps: [ { name: 'xin-web', // 应用程序的名称 script: 'npm', // 启动脚本 args: 'run dev', // 启动脚本的参数 cwd: '/home/vue/xin_web', // Vite 项目的根目录 interpreter: 'none', // 告诉 PM2 不使用解释器 autorestart: true, // 如果应用程序崩溃,自动重新启动 watch: false, // 监视文件变化 max_memory_restart: '1G', // 如果应用程序占用的内存超过 1GB,则重新启动 env: { NODE_ENV: 'production', // 设置环境变量 }, }, ], };

serve 创建文件 pm2.config.cjs

module.exports = { apps: [ { name: 'xin-service', // 应用程序的名称 script: 'npm', // 启动脚本 args: 'run start', // 启动脚本的参数 cwd: '/home/server/xin_serve', // Vite 项目的根目录 interpreter: 'none', // 告诉 PM2 不使用解释器 autorestart: true, // 如果应用程序崩溃,自动重新启动 watch: false, // 监视文件变化 max_memory_restart: '1G', // 如果应用程序占用的内存超过 1GB,则重新启动 env: { NODE_ENV: 'production', // 设置环境变量 }, }, ], };

记得 bd.js 配置好数据库的名称密码

二、服务器购买、安装系统

腾讯云:登录 - 腾讯云

服务器重装系统选择 CentOS stream 8 版本。

三、nginx 静态服务器配置

登录 root 最高权限

不同系统使用不同语句安装 分别对应 CentOS Ubuntu Fedora

sudo yum install epel-release && yum install nginx   [On CentOS/RHEL] sudo dnf install nginx                               [On Debian/Ubuntu] sudo apt install nginx                               [On Fedora]

我使用 sudo yum install epel-release && yum install nginx

这里有个 centOS 7.6 - 8 stream - 安装步骤 我没用这个方法

#安装 yum 仓库管理 sudo yum install yum-utils #创建文件 sudo touch /etc/yum.repos.d/nginx.repo #编辑文件 sudo vim /etc/yum.repos.d/nginx.repo #进入编辑模式之后按下 i 复制以下内容进入 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey= nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey= nginx.org/keys/nginx_signing.key module_hotfixes=true #按 ESC 退出编辑模式 #按 :wq 退出并保存 #安装 nginx sudo yum install nginx -y

校验是否安装成功,运行下面命令,能正确输出nginx版本号就OK。

nginx -v # 更详细信息 nginx -V

查看配置文件安装目录, 在启动 Nginx 服务之前,可以检查它的配置语法是否正确。尤其是当你修改或添加配置时很有用。 命令如下:

sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

PS: 如果有 Permission 这种字眼,是权限问题,给没有权限的所有路径授权 解决:

sudo chown -R nginx:nginx /var/log/nginx/ # 这个文件路径改成报错的路径 sudo chown nginx:nginx /var/run/nginx.pid # 这个文件路径改成报错的路径 sudo systemctl restart nginx # 重启

启动 & 开机自动重启

# 启动 1 nginx OR sudo systemctl start nginx OR sudo service nginx start #开机自启动 sudo systemctl enable nginx OR sudo service nginx enable

在浏览器中输入服务器的公网IP地址,能正确输出 nginx welcome 页面即可。

搭建 node.js 环境、上传项目、安装 git 工具

安装分布式版本管理系统 Git

yum install git -y git clone gitee /mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

依次运行以下命令,配置NVM的环境变量。

echo ". ~/.nvm/nvm.sh" >> /etc/profile

ps:遇到权限问题解决

sudo bash -c 'echo ". ~/.nvm/nvm.sh" >> /etc/profile'

刷新文档

source /etc/profile

运行以下命令,修改npm镜像源为阿里云镜像,以加快Node.js下载速度。

export NVM_NODEJS_ORG_MIRROR= npmmirror /mirrors/node

运行以下命令,查看Node.js版本。

nvm list-remote

有必要的话安装多个Node.js版本。  v14.0.0 可指定版本号

nvm install v14.0.0

我这里使用的 18.16.0

nvm install v18.16.0

查看已安装的Node.js版本。

设置使用版本,再设置默认版本

nvm use 18.x.x or 18 nvm alias default v18.16.0

一般是 cd.. 看看退出几层 能到达

到 /home 文件夹下面创建 vue server 文件夹,git clone 对应的项目,npm i 对应依赖

cd .. 即是退到 home 文件下

再 cd .. 可以看到大的文件目录

前端

后端

搭建数据库 Mysql - Centos steam 8

ps:卸载MySQL

执行如下命令查看已经安装

rpm -qa|grep -i mysql

执行如下命令卸载所有mysql软件包

yum -y remove mysql*

执行如下命令查找mysql的相关安装目录

find / -name mysql

通过rm -rf xxx 命令将上述步骤查询到的目录依次删除(注意分辨)

删除mysql配置文件

rm -rf /etc/my f

删除mysql默认密码

rm -rf /root/.mysql_history rm -rf /root/mysql_secret

---------------------------------------------------------------------------------------------------------------------------------

安装MySQL

安装 sudo yum install mysql-server -y 启动 sudo systemctl start mysqld 查看状态 sudo systemctl status mysqld

设置 MySQL root 密码

我们自己进行测试时使用的roo t密码不必太复杂,通过设置my f,可以设置简单密码(对mysql 8.0适用)

vi /etc/my f

 把下面写入( 设置的是一些密码长度策略什么的 )

validate_password.check_user_name = 0 validate_password.policy = 0 validate_password.mixed_case_count = 0 validate_password.number_count = 0 validate_password.special_char_count = 0 validate_password.length = 0

进入vi后,按i

移动上下左右键到,你想插入的位置,然后打字。这时跟记事本是一样的。

打完字后,按ESC

然后输入

:wq

就保存退出了。

设置完这些策略之后,必须执行 sudo systemctl restart mysqld ,才可使之生效

mysql -uroot -p

进入 sql,无密码

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

密码为 root

允许远程连接 设置权限,允许远程连接root用户

在 mysql 数据库的 user 表中查看当前 root 用户的相关信息 select host, user, authentication_string, plugin from user;

执行完上面的命令后会显示一个表格

查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

授权 root 用户的所有权限并设置远程访问 update user set host='%' where user='root';

重复

select host, user, authentication_string, plugin from user;

GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。

ctrl + d 退出 mysql

firewall-cmd --zone=public --add-port=3306/tcp --permanent

打开3306端口

开放端口需要先开启防火墙 systemctl start firewalld 开放端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent 重新载入防火墙使设置生效 firewall-cmd --reload 查看是否开放端口 firewall-cmd --zone=public --query-port=3306/tcp 关闭已开放端口(如无须关闭 不用执行) firewall-cmd --zone=public --remove-port=3306/tcp --permanent

恢复本地的数据库数据

sudo chmod 777 ‘文件’

sudo chmod -R 777 ‘文件’

这样  -r 的意思是 文件夹下面的所有内容

sudo chmod 777  '/home' 

修改文件夹权限

Navicat 导出数据库备份 db.sql 文件,通过腾讯云上传工具上传到任意地方,pwd 记录当前的路径

进入 mysql 控制台

mysql -u root -p

create database xin

show databases;

use xin

SOURCE /home/xin.sql

开放防火墙 80 端口

# 查看当前已经开放的端口 sudo firewall-cmd --list-ports # 开放 80 端口 sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 重新加载防火墙配置 sudo firewall-cmd --reload

pm2 守护进程、负载均衡

PM2 是 node 进程管理工具,可以利用他来简化很多 node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。而且使用非常简单。

目前使用 node server.js 在服务器启动服务之后,不能随意去做其他的操作。

在服务器上全局安装 #安装nodejs yum install nodejs #若遇到No package alien available.Error: Nothing to do,可先执行以下命令再安装nodejs yum install epel-release #查看npm版本 npm -v #1、安装pm2 npm install -g pm2

切换到对应位置 用 pm2 启动 项目

运行以下命令来使用 PM2 启动应用程序 pm2 start pm2.config.cjs

使用以下命令来查看应用程序的状态

pm2 list

https 协议域名设置

腾讯云 ssl 证书申请,下载

将 crt 和 key 上传到 /etc/nginx/nginx.conf 文件同级目录

sudo chmod -R 777 ‘/etc’

nginx 代理配置

配置nginx.conf 文件 bash复制代码

user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server { listen 443 ssl; ssl_certificate xinwangblog _bundle.crt; ssl_certificate_key xinwangblog .key; server_name xinwangblog .xinwangblog ; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Url-Scheme $scheme; proxy_redirect off; proxy_max_temp_file_size 0; } } server{ listen 80; server_name xinwangblog .xinwangblog ; location / { proxy_pass http://127.0.0.1:3000; } } }

这里还要检查你的 ssl 证书,要删掉 443 那个 检查 文件合法 bash复制代码nginx -t

重启 nginx bash复制代码nginx -s reload

标签:

vue+express、giteepm2部署轻量服务器由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“vue+express、giteepm2部署轻量服务器