我购买的是阿里云的学生机,操作系统是CentOS
部署的项目是Nodejs和React的前后端分离项目,需要安装配置nodejs,mysql,nginx等
首先安装nvm
安装git
1 | yum install git -y |
下载nvm
1 | git clone git://github.com/creationix/nvm.git ~/nvm |
设置nvm到bash
1 | echo "source ~/nvm/nvm.sh" >> ~/.bashrc |
查询node版本
1 | nvm list-remote |
安装node.js
1 | nvm install v12.0.0 |
使用nodejs
1 | nvm use v12.0.0 |
安装nginx
1 | yum -y install nginx |
nginx相关操作
1 | nginx -h #查看帮助 |
安装mysql
下载mysql5.7
1 | wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm |
进行repo安装
1 | rpm -ivh mysql57-community-release-el7-9.noarch.rpm |
进入到 /etc/yum.repos.d/目录,执行
1 | yum install mysql-server |
启动mysql
1 | systemctl start mysqld |
获取临时密码
1 | grep 'temporary password' /var/log/mysqld.log |
登录mysql,输入刚刚获取到的临时密码
1 | mysql -u root -p |
设置密码强度要求
1 | set global validate_password_policy=LOW; |
更改密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';#把123456替换为你自己的密码 |
设置mysql默认编码为utf8
1 | sudo vim /etc/my.cnf |
- 在[client]字段里加入default-character-set=utf8
- 在[mysql]字段里加入default-character-set=utf8
- 在[mysqld]字段里加入character-set-server=utf8
安装pm2
1 | npm install -g pm2 |
pm2 常用命令
1 | pm2 start app.js --name my-api # 命名进程 |
部署项目到nginx,并使用nginx反向代理
把项目从github上clone下来,前端项目执行npm build
后
可以在/etc/nginx/conf.d/
目录下新建一个react-blog.conf,然后编辑这个文件
配置如下:
1 | server { |
然后打开/etc/nginx/nginx.conf
这个文件
在server下再加上
1 | server { |
要在服务器提供商的管理网页中开放8078端口。
由于使用80端口需要备案,所以可以先用其他端口代替
后端使用pm2进行运行,假设运行后端程序提供的端口为6543
那么该端口也可以通过nginx进行反向代理
1 | server { |
所以对外部统一保留8078端口即可,可以根据不同的域名来访问不同的服务。