Search K
Appearance
Appearance
我们学习了Nodejs以后,那么就可以无缝使用Nodejs来编写服务端代码,当我们在本地编写完前端和服务端代码以后,如果需要在浏览器访问到我们的项目的话,那么就需要将前端代码和服务端代码部署在云服务器上。本文博主会以部署一套Node运行环境为例子,来开始我们的部署实战。好了,话不多说直接开始😎。
本次部署实战需要准备的工具:一台云服务器
首先我们需要购买一台云服务器,由于博主购买服务器的目的是学习和实践,所以对于博主来说购买一台轻量型应用服务器就能满足需求了。
轻量型应用服务器和云服务器的区别在于:
1、使用对象:轻量应用服务器面向单机应用,云服务器ECS则未做任何限制;
2、可扩展性:轻量应用服务器提供的配置仅有少量的几个可供选择,升配局限较大;云服务器ECS提供数十种类型上百种配置可供选择,并且支持升级,同时ECS支持搭配其他应用如RDS、OSS来使用;
3、网络:轻量应用服务器面向对象是单机,基本不存在网络的扩展问题;云服务器ECS在专有网络VPC下,用户可以自定义专有网络,并且可以通过网络与线下IDC或者其他云产品进行互联互通;
随着云计算的发展,轻量应用服务器正在逐步替代虚拟主机,成为中小企业部署官网的首选。目前主流云平台也纷纷推出轻量应用服务器,而且折扣力度都比较大,因为是学习用,所以大家根据自己的需求购买即可。推荐阿里云和腾讯云的服务器,并且它们经常会推出一些大力度的折扣套,大家可以乘机进行白嫖😉😉😉。由于博主购买的是CentOs7.6,
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。Nginx具有很高的稳定性,支持热部署,nginx做为HTTP服务器,有以下几项基本特性:
更详细的Nginx教程:Nginx教程
Nginx 安装的最简单方式:
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx
systemctl start nginx //启动并开机自动运行
systemctl enable nginx
Nginx常见命令:
nginx -t //检查配置文件是否正确
nginx -s stop //停止
nginx -s quit //停止
nginx -s start //启动
nginx -s reload //重新加载配置文件
linux相关命令:
whereis nginx //查看nginx地址
ps -ef| grep nginx //查看nginx占用的端口
然后我们访问公网ip地址,Nginx安装以后默认已经监听80端口,对应的配置文件目录是:/etc/nginx/nginx.conf
如果出现以上页面则Nginx安装启动成功🎉🎉🎉!!
顺带一提,默认Nginx配置80端口映射到的静态资源目录是/usr/share/nginx/html/,我们可以拿这个博客网站做个测试,在该目录下建立一个docs文件夹,然后往里面上传博客网站的静态资源,然后浏览器输入ip+/docs访问
由于我们项目是放到git仓库上,所以我们需要安装git以便于在服务器上拉取项目代码。
查看主机是否安装过git
rpm -qa|grep git
如果出现git加版本号则说明已经安装过了,反之亦然。
安装git
yum install git
查看git版本号
git version
如果显示git verson 加版本号则表示成功 😎😎😎!!
配置git账号
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
查看是否生效
git config --list
如果出现user.name="Your Name" user.email="Yourl email"则表示配置成功
ssh-keygen -t rsa -C "your_email@youremail.com"
默认生成目录地址:/root/.ssh/id_rsa
id_rsas是私钥,id_rsa.pub是公钥
查看生成的公钥
cat /root/.ssh/id_rsa.pub
然后保存好此公钥文件,将公钥复制进git仓库就可以拉取仓库代码了。
数据库必不可少,后续博主会出安装MongoDB相关教程,这里我们暂时用Mysql举例子。
更新yum源
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
安装mysql,我们选择安装社区稳定版本的
yum install mysql-community-server
查看mysql版本号
mysql -V
如果出现mysql加版本号则表示成功
安装完成以后我们启动mysql
systemctl start mysqld
mysqld下面加一句
然后保存退出。
[mysqld]
skip-grant-tables
重启mysql
systemctl restart mysqld
mysql -u root -p 登录 MySQL,然后不输入密码直接回车
mysql -u root -p
然后重置密码
update mysql.user set authentication_string=password('123456') where user='root';
然后退出重新登陆测试一下
exit;
然后测试登陆一下
mysql -uroot -p;
输入密码:123456
设置mysql开机启动
systemctl enable mysqld
systemctl start mysqld //启动
systemctl enable mysqld //设置开机自启动
systemctl restart mysqld //重启mysql
至此mysql安装完成,🤞🤞🤞!!
所谓“防火墙”,是指一种将内部网和公众访问网分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许只有你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度dao地阻止网络中的黑客来访问你的网络。
版权声明:本文为CSDN博主「dxyzhbb」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/dxyzhbb/article/details/106492441
首先我们需要登录云服务器控制后台开启指定防火墙
查看防火墙状态
systemctl status firewalld
发现它是dead未开启的状态
开启防火墙
systemctl start firewalld
如果没报错则开启成功
查看开启状态
firewall-cmd --state
开启成功🤞🤞🤞!!
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload //重启防火墙
还没结束,我们还需要开放一些其他常用端口
例如:Mysql端口(3306),Https端口(443),SSH登录端口(22),Windows登录端口(3389)。这些端口都需要开放。
博主后续会使用到一些端口,就一起开放了,Mongodb端口(27017,27018) Redis端口(6379),Ftp端口(21) 以及一些其他端口8080,8848,3000 。
重启防火墙,查看开放状态
systemctl start firewalld //开启防火墙
firewall-cmd --state //查看防火墙状态
firewall-cmd --zone=public --add-port=8080/tcp --permanent //开启防火墙指定端口以8080为例子
firewall-cmd --zone=public --add-port=8000-8100/tcp --permanent //开启指定范围端口
firewall-cmd --zone=public --remove-port=13280/tcp --permanent //移除已开启的端口
firewall-cmd --reload // 重启防火墙
firewall-cmd --list-ports //查看防火墙开启的端口
systemctl stop firewalld //停止防火墙
既然是Node服务那么Node.js就必须安装的,合情合理吧😎。
博主这里下载的是v14.17.2
我们在/usr/local下面建立一个software文件夹用来存放一些手动安装的软件包,然后在/usr/local/software执行以下命令
安装nodejs
wget https://nodejs.org/dist/v14.17.2/node-v14.17.2-linux-x64.tar.xz
如果找不到wget可以先进行安装
yum -y install wget
下载成功以后查看一下ls -a
解压文件
tar -xvf node-v14.17.2-linux-x64.tar.xz
重命名减少后续繁琐操作
mv node-v14.17.2-linux-x64 nodejs
全局引用,创建软连接
ln -s /usr/local/software/nodejs/bin/npm /usr/local/bin
ln -s /usr/local/software/nodejs/bin/node /usr/local/bin
顺便查看版本号
至此,Nodejs已经安装完成了!!😎😎😎
由于Node是单线程的,所以当你的服务挂掉的时候线程也就没了,pm2是一个进程管理工具,可以用来管理你的Node进程。
pm2作用:
好了,接下来进入安装教程,pm2安装也比较简单
安装pm2
npm install -g pm2
pm2配置全局变量
ln -s /usr/local/software/nodejs/bin/pm2 /usr/local/bin/pm2
查看版本号
pm2 -v
设置开机启动
pm2 startup
pm2 start app.js // 启动pm2,app.js为node服务入口文件
pm2 start app.js --name my-api //my-api为服务名字
pm2 restart app //重启应用
pm2 restart all //重启全部应用
pm2 restart app1 app2 //重启指定应用
pm2 delete app1 //删除指定应用
pm2 stop app //停止应用
pm2 stop all //停止全部应用
pm2 stop app1 app2 //停止指定应用
pm2 list //显示全部应用
PM2更加详细的教程: PM2官方文档
至此Node开发环境已经搭建完成了!🎉🎉,还有很多不足之处,大家可以在评论区指出。
博主也是一个刚学习Nodejs和Linux不久的小菜鸡,之所以想从0搭建一个Node开发环境是因为想实践一下(主要是闲得慌)。文章有很多不足之处,如有疏漏或者错误还望大家在评论区指出。