记一次node+react项目发布过程(三)--部署代码到阿里云并配置nginx

2,319 阅读1分钟

先附上项目效果:

项目网址:http://47.105.144.204/index

github: https://github.com/dsying/react-cNode

喜欢的话顺手个小星星吧✨✨✨

登录阿里云服务

通过ssh登录

ssh 用户名@IP

登录云主机

通过 nvm 安装 node

# 安装git 
yum install git
# 安装NVM
git clone https://github.com/creationix/nvm.git
# 激活NVM
echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile
# 查看NVM版本
nvm --version
# 列出Node.js的所有版本
nvm list-remote
# 安装指定版本
nvm install v6.9.5
nvm install v7.4.0
# 运行 nvm ls 查看已安装Node.js版本
nvm ls
# 使用指定版本
nvm use 10.15.1

git生成ssh秘

# 执行命令在 .ssh 目录下生成一对秘钥
ssh-keygen

如何生成公钥并添加到github个人账户

拉取代码

git clone git@github.com:dsying/react-cNode.git

你也可以通过 tar包的方式,然后sftp到云主,然后再解压缩的方式获取代码

安装pm2

npm install pm2 -g
# or
yarn add global pm2

配置 pm2.yml 脚本

apps:
  - script: ./server/server.js
    name: cnode
    env_production:
      NODE_ENV: production
      HOST: localhost

进入项目根目录,执行 pm2.yml 脚本

pm2 start pm2.yml

更多关于pm2

nginx配置

# 安装nginx
sudo yum install ngin

# 进入nginx配置目录
cd /etc/nginx/conf.d/
# 创建配置文件
touch cnode.conf

cnode.conf

server {
        listen 80;
        server_name 47.105.144.204;

        location / {
                root /home/dsying/projects/react-cNode;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_set_header Connection "";
 		        proxy_pass http://127.0.0.1:3333;
        }
}

这段配置的意思是 把公网ip的80端口,映射到内网ip的 3333端口

重新加载nginx配置文件

nginx -s reload

注意: 你开放的公网端口都要在阿里云控制台上开启