咱们以一个静态站点和一个服务端 demo 为例。
准备工作
装置 Node
- 首先需求一台服务器来做发布项目的环境,这儿引荐购买阿里云ECS,关于非专业人士来说,在购买 ECS 云服务器时假设不知道买哪种实例规格,那能够挑选「场景化选型」,这儿会有一些常见的事务场景和细分场景供咱们挑选,比方咱们能够购买「事务场景-Web开发与测试」以及「细分场景-Apache或Nginx前端服务」
- 其他的选项能够根据自己的状况进行购买(包年包月的优惠力度很大,一次性购买五年的优惠一般是4-5折,能够在双十一等有活动期间进行购买会有折上折)。
- 在网络和安全这一步,带宽的计费形式(关于小站点的站长来说)引荐运用「按运用流量」会更划算一些,假设网站的拜访流量大,则引荐固定带宽。
- 之后的配置根本能够不必变,也能够根据自己的实际需求进行调整,直到付款购买。
- 购买好之后咱们进入到 ECS 控制台,能够看到实例列表中现已展示出来咱们刚刚购买的 ECS 云服务器,点击云服务器名称能够进入到概况页面检查云服务器的概况,主要是看公网 IP,咱们后边需求通过它来拜访咱们自己的项目。
- 点击「长途衔接」按钮,挑选
workbench
能够长途拜访咱们的云服务器,这种方法是需求输入密码的。所以咱们能够挑选免密登录的方法进行拜访 - 由于咱们是要发布一个 Web 项目,那 Node 环境是必需的,可是当咱们尝试在服务器中输入
node -v
时,会提示咱们node command not found
,这说明咱们需求为当时服务器装置一个 Node - 这儿引荐运用 nvm 来管理 node 版别,咱们能够先在服务器上运用
curl
来装置一个 nvm,装置方法能够在 github 上查找 nvm,然后进入到项目中检查,例如:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
- 装置好之后呢,咱们需求重新加载一下它的配置文件
source ~/.bashrc
,然后再在指令行中输入nvm -h
就能够看到指令生效了 - 此刻咱们就能够装置
node
了,这儿咱们能够直接nvm install node
即可下载最新安稳版别的node
了
装置Nginx
装置好 node
之后咱们即能够在服务器上发动咱们的后端服务了(针对 Node 而言)。
- 但关于一些静态站点咱们还需求装置
nginx
服务来做署理(后期购买域名之后及配置 https 也需求用到),所以这儿还需求再装置一下nginx
- 在 Linux 下装置 nginx,要先装置
gcc-c
编译器,所以这儿咱们需求先进行装置:yum install gcc-c
、yum install -y openssl openssl-devel
- 然后装置 Nginx 依赖的
pcre
和zlib
包- pcre:
yum install -y pcre pcre-devel
- zlib:
yum install -y zlib zlib-devel
- pcre:
- 最后装置 nginx,咱们创立一个 nginx 的文件夹
mkdir /usr/local/nginx
- 下载或许上传装置包到服务器:
wget https://nginx.org/download/nginx-1.9.9.tar.gz
- 解压并进入到 nginx 目录:
tar -zxvf nginx-1.9.9.tar.gz
—cd nginx-1.9.9
- 运用 nginx 默认配置:
./configure
- 编译装置
make
&make install
- 进入到
sbin
目录下,发动 nginx:./nginx
- 检查是否发动成功:
ps -ef | grep nginx
静态站点
静态站点的制造,现在的计划有许多,举例:
当咱们配置好咱们的静态站点之后,就能够打包上传咱们的网站到服务器上了,然后通过 nginx 服务做署理转发,即可通过公网拜访咱们的站点了。具体操作如下:
- 在咱们装置完 nginx 之后,需求再创立一个放置静态站点的目录,比方在
/var/www
下新建一个html
的目录:mkdir /var/www/html
- 然后通过
scp
将咱们打包之后的项目上传到服务器:scp -r <local_filepath> <service_name>@<service_ip>:<service_target_path>
- 履行完上述操作之后,咱们再回到指令行中并进入到 nginx 目录的 conf 目录下,修正一下 nginx 的配置文件:
vim nginx.conf
- 主要修正 http 下的 server 下的 location
location / {
root /var/www/html;
index index.html
}
修正完之后,保存退出并重载一下 nginx: nginx -s reload
就打工告成了,此刻咱们输入公网IP就能够看到对应的静态站点了。
服务端程序
咱们能够创立一个简略的 Node 项目来做演示。
const http = require('http')
const fs = require('fs')
const server = http.createServer(() => {
const html = fs.readFileSync('./src/index.html')
res.end(html)
})
server.listen(8000, () => {
console.log("server is running")
})
再写好模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>布置Web项目</title>
</head>
<body>
<h1>怎么从0到1上线一个 Web 项目</h1>
</body>
</html>
将做好的 demo 打包并上传到服务器上,关于 MAC 来说是自带 SSH 的,而在 Windows 系统上,Win10 是自带的,Win10 以下能够自行百度进行装置。
scp -r <local_filepath> <service_name>@<service_ip>:<service_target_path>
上传好之后,关于压缩的文件咱们进行解压即可。解压之后咱们进入到项目目录中,并发动项目:node www.js
。
然后就能够通过服务器的公网IP进行拜访了,这儿拜访时需求携带端口号。
⚠️注意:假设拜访不成功,可能是安全组中没有放开对当时端口号的拜访权限,此刻还需求到安全组增加一个入方向的拜访规矩,端口范围为当时服务的端口号,配置好之后再次拜访项目地址就能够正常拜访了
可是!此刻假设咱们退出了服务,或许关闭了 workbench,那么再拜访时会发现,网站又拜访不了了,这是由于当咱们履行了上述操作时,项目的服务就会被停掉了,毕竟它也不是处于后台运转的。
当咱们退出或许关掉终端衔接时,它会把服务脚本也一起杀掉
那么咱们怎么让它在后台进行运转呢?只需履行以下指令即可:
这样咱们就将这个 Web 服务放到了后台运转了。
购买域名
那咱们也不能一向运用公网 IP 地址去拜访咱们的项目吧,此刻咱们还需求一个好看好听的域名来撑场面,查找万网来购买一个自己喜爱的域名,购买成功之后到域名解析的控制台来做域名解析。这一步是需求备案的,不过现在能够直接在网上进行备案,一般一两天就OK。
最后,咱们就能够通过域名来拜访咱们的网站啦。