CentOS7虚拟机部署Part1

本文详述了在CentOS7虚拟机上进行服务器配置的全过程,包括安装CentOS7、配置网络、更新yum、安装nodejs、mysql、ngnix以及PM2。还介绍了如何设置环境变量,确保SSH服务正常运行,并提供了从部署前端代码到启动后端应用的完整步骤。

安装centos7

配置网络

centos7 初始 不联网

1.更改虚拟机网络链接为 桥接模式,并启用网络链接


2 修改配置文件

cd /etc/sysconfig/network-scripts/
vi ifcfg-en33   # en33 会有差异


修改文件中的ONBOOT=yes

3 配置静态ip


重启

service network restart


更新yum

1 安装wget

yum install wget

2 更换yum 源

备份一下原本的yum源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载阿里云的yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

生成缓存

yum makecache

3 更新

yum update

配置ssh

检查有没有安装ssh服务:

rpm -qa | grep ssh

如果没有安装ssh服务就安装 :

yum install openssh-server


安装好后在ssh配置文件里进行配置 :

vi /etc/ssh/sshd_config



开启ssh服务

/bin/systemctl start sshd.service


检查ssh服务是否开启

ps -e | grep sshd


检查22端口是否开启

netstat -an | grep 22

如果出错,netstat 命令没有发现,安装相关包

yum install net-tools


将ssh服务添加到自启动列表中:

systemctl enable sshd.service


查看虚拟机centos ip地址

ip addr

在windows 客户端登录


安装nodejs

NodeJS 10.x

 # As root

curl -sL https://rpm.nodesource.com/setup_10.x | bash -

 
 # No root privileges

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -


安装 yarn

 ## 安装yarn

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
yum install -y yarn


更换npm源


npm install -g cnpm --registry=https://registry.npm.taobao.org


安装 @nestjs/cli


cnpm install -g i @nestjs/cli@6.0.0

查看版本


nest --version


安装mysql

清华源


vi /etc/yum.repos.d/mysql-community.repo


修改5.7 版本对应的baseurl为


baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/


同时 enable改为1

 enable=1

打开清华镜像站点


https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/


选择版本(5.7),el7代表centos7

复制链接地址


https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/


下载


wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/


安装


yum -y install mysql-community-server


启动


systemctl start mysqld


1 安装yum repo

由于centos的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件


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


然后进行repo的安装


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


2 安装mysql

安装


yum install mysql-server


启动mysql


systemctl start mysqld


获取安装时的临时密码


grep 'temporary password' /var/log/mysqld.log

# eB%lUTsHU2%n


登录mysql

mysql -u root -p


输入获取的临时密码

grep ‘temporary password’ /var/log/mysqld.log


登录成功后,修改登录密码

1 修改密码(密码必须满足密码策略,设复杂点)


ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root_@_Password_0’;

 


2 查看mysql初始密码策略


SHOW VARIABLES LIKE ‘validate_password%’;


关于 mysql 密码策略相关参数;

1)、validate_password_length  固定密码的总长度;

2)、validate_password_dictionary_file 指定密码验证的文件路径;

3)、validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;

4)、validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;

5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

关于 validate_password_policy 的取值:

LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

创建数据库

create database taskmanagement charset utf8 collate utf8_general_ci;


设置环境变量

此处凡是通过process.env获取的 数据都 添加到环境变量中

不敏感的配置如端口 定义在代码的config文件夹中(基于代码的)

敏感信息,如生产模式数据库名和密码定义在环境变量中。

在node环境中,process.env 一直是可用的,不用安装其他软件就可以使用,可以在 node环境中测试

process.env.PROCESSOR_ARCHITECTURE

 


 // 结果 ‘AMD64’

打开/etc/bashrc,添加项目中 process.env 指向的环境变量

export NODE_ENV=production


 # 运行端口


export RDS_PORT=3306 #数据库端口


 #数据库用户名


export RDS_USERNAME=root


 #数据库密码


export RDS_PASSWORD=root  # 你自己的数据库密码


 # 数据库名


export RDS_DB_NAME=taskmanagement  # 你自己的数据库名


 # 生产环境数据库模式

export TYPEORM_SYNC=false
export JWT_SECRET=topSecret51


运行命令


source /etc/bashrc


ngnix安装与配置(此处更改为open)

安装

1 添加nginx源


rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm


2 安装nginx


yum -y install nginx


3 启动nginx


/usr/sbin/nginx


4 查看防火墙状态,开启80端口


systemctl status firewalld
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --permanent --add-port=80/tcp


重启防火墙


firewall-cmd --reload


5 测试nginx(浏览器输入)


http://ip:80


6 设置nginx 开机启动


systemctl enable nginx


查看selinux的状态


/usr/sbin/sestatus


将SELINUX=enforcing 修改为 SELINUX=disabled 状态


vim /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled

重启

reboot

配置

1 创建文件存放路径

mkdir website


根目录下创建website文件夹, website 下存放多个项目 文件.

 

website
-todo
-frontend #前端
-backend #后端

2 修改文件夹权限


chmod 777 website #以及其他文件夹权限

 


3 下载FileZilla,安装

链接服务端  略

4 编译前端代码,上传代码到前端文件夹

代码有两处需要修改:

4.1 编译前修改 前端代码中的 BASE_URL  为服务器

4.2 修改 tasks所有后端接口,添加 api/


yarn run build


上传生成的build文件夹下的所有文件

5 修改nginx 配置

vi /etc/nginx/conf.d/default.conf






重启nginx

nginx -s reload


测试

http://ip:80


6 后端代码上传

修改后端代码中的端口 为 4000

tasks 组件中添加 api/

上传出 node_modules与 .git外的所有代码到后端存放路径

进入

cd /website/todo/backend/

7 安装 所需的库

yarn install

8 启动后端

 

yarn run start:prod

9 配置nginx 反向代理

vi /etc/nginx/conf.d/default.conf

server {
listen 80;
server_name localhost;
location / {
#root /usr/share/nginx/html;
root /website/todo/frontend;
index index.html index.htm;
try_files uri</span><spanclass="tokenvariable">uri</span> <span class="token variable">uri</span><spanclass="tokenvariable">uri/ /index.html;
}
location ^~ /auth {
proxy_pass http://127.0.0.1:4000;
}
location ^~ /api {
proxy_pass http://127.0.0.1:4000;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

 
 

重启ngnix

nginx -s reload

启动后端

yarn run start:prod


PM2 配置

pm2安装,测试

npm i -g pm2

使用PM2启动  项目(只需执行一次)

pm2 start yarn --interpreter bash --name todo – start:prod

 

停止项目

pm2 stop todo

重启项目

 

pm2 restart todo

杀死项目进程

 

pm2 delete 0,1,2 .  # 数字代表 pm2进程,all --删除所有进程



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leoxiaoge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值