咱们以一个静态站点和一个服务端 demo 为例。

准备工作

装置 Node

  1. 首先需求一台服务器来做发布项目的环境,这儿引荐购买阿里云ECS,关于非专业人士来说,在购买 ECS 云服务器时假设不知道买哪种实例规格,那能够挑选「场景化选型」,这儿会有一些常见的事务场景和细分场景供咱们挑选,比方咱们能够购买「事务场景-Web开发与测试」以及「细分场景-Apache或Nginx前端服务」
  2. 其他的选项能够根据自己的状况进行购买(包年包月的优惠力度很大,一次性购买五年的优惠一般是4-5折,能够在双十一等有活动期间进行购买会有折上折)。
  3. 在网络和安全这一步,带宽的计费形式(关于小站点的站长来说)引荐运用「按运用流量」会更划算一些,假设网站的拜访流量大,则引荐固定带宽。
  4. 之后的配置根本能够不必变,也能够根据自己的实际需求进行调整,直到付款购买。
  5. 购买好之后咱们进入到 ECS 控制台,能够看到实例列表中现已展示出来咱们刚刚购买的 ECS 云服务器,点击云服务器名称能够进入到概况页面检查云服务器的概况,主要是看公网 IP,咱们后边需求通过它来拜访咱们自己的项目。
  6. 点击「长途衔接」按钮,挑选 workbench 能够长途拜访咱们的云服务器,这种方法是需求输入密码的。所以咱们能够挑选免密登录的方法进行拜访
  7. 由于咱们是要发布一个 Web 项目,那 Node 环境是必需的,可是当咱们尝试在服务器中输入 node -v 时,会提示咱们 node command not found,这说明咱们需求为当时服务器装置一个 Node
  8. 这儿引荐运用 nvm 来管理 node 版别,咱们能够先在服务器上运用 curl 来装置一个 nvm,装置方法能够在 github 上查找 nvm,然后进入到项目中检查,例如:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
  9. 装置好之后呢,咱们需求重新加载一下它的配置文件source ~/.bashrc,然后再在指令行中输入 nvm -h 就能够看到指令生效了
  10. 此刻咱们就能够装置 node 了,这儿咱们能够直接 nvm install node即可下载最新安稳版别的 node

装置Nginx

装置好 node 之后咱们即能够在服务器上发动咱们的后端服务了(针对 Node 而言)。

  1. 但关于一些静态站点咱们还需求装置 nginx服务来做署理(后期购买域名之后及配置 https 也需求用到),所以这儿还需求再装置一下 nginx
  2. 在 Linux 下装置 nginx,要先装置 gcc-c 编译器,所以这儿咱们需求先进行装置:yum install gcc-c yum install -y openssl openssl-devel
  3. 然后装置 Nginx 依赖的 pcrezlib
    • pcre: yum install -y pcre pcre-devel
    • zlib: yum install -y zlib zlib-devel
  4. 最后装置 nginx,咱们创立一个 nginx 的文件夹 mkdir /usr/local/nginx
  5. 下载或许上传装置包到服务器:wget https://nginx.org/download/nginx-1.9.9.tar.gz
  6. 解压并进入到 nginx 目录:tar -zxvf nginx-1.9.9.tar.gzcd nginx-1.9.9
  7. 运用 nginx 默认配置:./configure
  8. 编译装置 make & make install
  9. 进入到 sbin 目录下,发动 nginx:./nginx
  10. 检查是否发动成功:ps -ef | grep nginx

静态站点

静态站点的制造,现在的计划有许多,举例:

当咱们配置好咱们的静态站点之后,就能够打包上传咱们的网站到服务器上了,然后通过 nginx 服务做署理转发,即可通过公网拜访咱们的站点了。具体操作如下:

  1. 在咱们装置完 nginx 之后,需求再创立一个放置静态站点的目录,比方在 /var/www下新建一个 html的目录:mkdir /var/www/html
  2. 然后通过 scp 将咱们打包之后的项目上传到服务器:scp -r <local_filepath> <service_name>@<service_ip>:<service_target_path>
  3. 履行完上述操作之后,咱们再回到指令行中并进入到 nginx 目录的 conf 目录下,修正一下 nginx 的配置文件:vim nginx.conf
  4. 主要修正 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。

最后,咱们就能够通过域名来拜访咱们的网站啦。