目录
1. 简介
效果: songtang.xyz
最近写了一个比较简陋的后台管理系统来练练手,主要学习了一下mongoose
和express
,终于来到了最后的项目上线。经历两天的不断失败终于搞上去了。特此总结,以备日后更换服务器和域名。这个东西说简单不简单说难其实也不难,只达到简单的让项目上线还是可以搞得,至于安全性什么的交给运维吧。好了,以上内容纯属废话,下面进入正题!
2. 分析
这篇记录一切以阿里云为主,其它的暂不考虑。在阿里云购买域名和服务器什么的在此不再赘述,记录自己遇到的一个坑,买完服务器必须重置登录密码,或者说初始化登录密码。不然我竟然登录不上
对于服务器的系统,毫不犹豫的选择了Linux
的代表CentOS7.0
系列,这里不建议安装可视化界面,但是话说回来装了也没太大影响,毕竟在学习阶段。
安装图形界面命令
:
# 1. 先安装 GNOME Desktop
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
# 2. 更新系统的运行级别
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
# 3. 设置默认通过桌面环境启动服务器:(图形化界面体验下就行了,对服务器来说没啥用,浪费)
systemctl set-default graphical.target
# 或者设置成命令模式(推荐)
systemctl set-default multi-user.target
# 4. 安装 X Window System
yun groups install "X Window System"
# 5. 重启
reboot
3. 连接远程服务器
3.1 工具: Xshell配合Xftp(Mac可用iterm2和transmit)
Xftp同理,应该没什么问题。一般用的IP都是公网IP…
3.2 修改主机名:即Xshell@后面的名字
1. vim /etc/hosts
2. vim /etc/hostname
4. node环境部署
推荐使用nvm安装node,不仅不容易出错,而且方便管理:
1. # 安装必备git
yum install git
2. # 安装nvm管理工具
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
3. # 加入系统环境
source ~/.bashrc
4. # 查看是否成功
command -v nvm
5. # 查看所有node版本
nvm list-remote
6. # 安装指定node版本
nvm install v12.10.0
7. # 切换node版本
nvm use v.......
8. # 设置默认的node版本
nvm alias default v12.10.0
9. # 查看node自带npm
npm
至此,node环境搭建完毕!
5. MongoDB数据库环境搭建
下载前请自行新建一个mongo文件夹,用于解压下载好的数据库!
1. # 下载mongoDB
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.0.tgz
2. # 解压
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.0.tgz
3. # 重命名方便读取
mv mongodb-linux-x86_64-rhel70-4.2.0 mongodb
4. # 进入
cd mongodb
5. # 创建数据和日志文件
mkdir data
mkdir log
6. # 配置环境变量
vim /etc/profile
添加代码(路径为自己的mongodb路径,每个人每次每台机器是不一样的):
export MONGODB_HOME=/root/Program/mongo/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
保存退出(按Esc-->输入 :wq)
vi ~/.bash_profile
添加代码
PATH=$PATH:/root/Program/mongo/mongodb/bin
保存退出
7. # 使其生效
source /etc/profile
source ~/.bash_profile
8. # 测试是否配置环境变量成功
mongo --version
9. # 启动mongodb
mongod --dbpath /root/Program/mongo/mongodb/data --fork --logpath /root/Program/mongo/mongodb/log/mongo.log
6. nginx下载与配置
6.1 使用宝塔快速下载编译配置nginx(偷懒)
1. # 安装宝塔免费版控制面板方便编译安装lnmp(省了点事...)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2. # 下面就是根据提示信息登录网页去配置安装nginx了,傻瓜式安装...
6.2 自己手动下载配置nginx
1. # 安装nginx依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2. # 在新建的nginx文件夹中下载nginx,版本可以在官网自选
wget http://nginx.org/download/nginx-1.9.13.tar.gz
3. # 解压
tar -xvf nginx-1.9.13.tar.gz
4. # 进入解压后的nginx-1.18.0包目录
cd /usr/local/nginx/nginx-1.9.13
5. ./configure
6. make
7. make install
在任意目录执行 nginx -v
发现可能会提示没有找到nginx命令则判断为环境变量问题,配置nginx环境变量如下:
1. vim /etc/profile
2. # 指向nginx的sbin目录
PATH=$PATH:/usr/local/nginx/sbin
3. # 重新加载使其生效
source /etc/profile
4. 任意目录执行
nginx -v
6.3 node部署
2. # 安装pm2方便管理程序后台运行
npm i -g pm2
3. # 安装express
npm -g install express
4. # 启动node项目(进到项目根目录下)
pm2 start ./bin/www
5. # 查找nginx相关配置的位置
find /|grep nginx.conf
6. # 进入conf(具体根据nginx的下载位置有所不同)
cd /www/server/nginx/conf
7. # 编译nginx.conf
vim nginx.conf
8. # 添加代码
server {
listen 80;
server_name www.songtang.xyz,songtang.xyz; // 换成自己的域名或者IP地址
location / {
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:8080; // 代理指定的端口
}
}
9. # 测试nginx配置文件
nginx -t
10. # 重载nginx配置文件(使其生效)
nginx -s reload
11. # 重启nginx(以防万一)
service nginx restart
12. # 重启node项目(项目根目录)
pm2 restart ./bin/www
到这里项目基本上部署完毕了:
7. 部署时刻监听的操作
很多的时候我们会感觉命令都没错,配置都没错但是就是达不到想要的效果,这时候就需要进行以下操作
1. # 阿里云安全组放行需要的端口
比如说比如放行27017:
2. # 放行防火墙端口
因为有时候只在阿里云安全组放行是不够的的,就是这么莫名其妙,当时在这卡了12个小时,
就是因为没有放行防火墙端口,尽管安全组都放行了
2.1 # 查看开放的端口列表
firewall-cmd --zone=public --list-ports
2.2 # 添加放行的端口
firewall-cmd --zone=public --add-port=9999/tcp --permanent
2.3 # 重启使其生效
firewall-cmd --reload
3. # 解决进程占用
3.1 # 查看端口被哪个进程占用
netstat -lnp|grep 3000
3.2 # 干掉占用端口的进程
kill -9 3382
8. 总结
之前买的域名没有备案,拖着拖着就忘了,而且现在备案需要3个月以上的实例才行,我的第一个服务器还是免费试用的一个月的,没办法,用完再买一年的喽,先体验一下。Vue项目的打包上线回头再记录,好累。希望遇见更好的自己,黑芝麻…