第一步:安装nginx

sudo apt-get update
sudo apt-get install nginx

如果遇到依赖问题,尝试执行sudo apt-get -f install命令

第二步:配置nginx

  1. 首先备份原先的配置文件:sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
  2. 修改配置文件:

    如果你熟悉vi的使用:

    • 使用vi打开配置文件:/etc/nginx/sites-available/default
    • 修改其中的location /配置如下:
      location / {
      proxy_pass http://localhost:3000;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
      }

    如果你不熟悉:

    • 使用scp将配置文件拷到本地:scp username@ip_address:/etc/nginx/sites-available/default ./(在本地计算机上执行)
    • 进行修改,保存
    • 使用scp将修改后的配置文件传输到服务器:scp ./default username@ip_address:/home/username(在本地计算机上执行)
    • 将修改后的配置文件放到指定目录:sudo cp /home/username/default /etc/nginx/sites-available/default(在服务器上执行)
    • 注意事项:
    • 注意修改username和ip_address
    • scp使用前需要配置ssh
  3. 测试配置文件:sudo nginx -t

    出现以下输出则OK,否则请根据报错检查自己的配置文件
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  4. 重启nginx服务:sudo service nginx restart

第三步:安装npm和nodejs

直接使用sudo apt install进行安装的话,版本比较低,因此这里在官网下载进行安装.

  1. 使用wget进行下载:wegt https://nodejs.org/dist/v12.1.0/node-v12.1.0-linux-x64.tar.xz
  2. 解压缩:tar xf node-v12.1.0-linux-x64.tar.xz
  3. 创建指向我们所下的版本的nodejs的软链接:
    sudo ln -s /home/ubuntu/node-v12.1.0-linux-x64/bin/node /usr/bin/node
    sudo ln -s /home/ubuntu/node-v12.1.0-linux-x64/bin/npm /usr/bin/npm
    sudo ln -s /home/ubuntu/node-v12.1.0-linux-x64/bin/node /usr/bin/nodejs
  4. 测试:
    npm -v
    node -v
    nodejs -v

第四步:部署服务

  1. 安装进程守护工具pm2:npm install -g pm2
  2. 从Github把项目clone下来:git clone https://github.com/songwonderful/practice-nodejs.git
  3. 进入项目目录:cd practice-nodejs
  4. 安装依赖库:npm install
  5. 使用pm2启动服务:pm2 start ./bin/www

注意:以上以我自己的一个项目为例,请根据你的具体情况修改相应的参数

其他

此教程所用软件版本:

Ubuntu 16.04.6 LTS
nginx version: nginx/1.10.3 (Ubuntu)
npm -v : 6.9.0
nodejs -v : v10.15.3

参考

Ubuntu 16.04下配置 Nginx 与 Node.js 以及服务的部署的更多相关文章

  1. Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发

    Ubuntu16.04下: sudo apt -get nginx 用这条命令安装完nginx之后, nginx在该目录下: 然后配置nginx: 如下: 红圈圈住的地方多写几个可以做负载均衡. 端口 ...

  2. Ubuntu 16.04下配置intel opencl环境

    一. 靠谱的安装教程 1. 官网教程 https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg,打开后往下拉到[4. Prod ...

  3. Ubuntu 16.04下配置Golang开发环境

    安装之前先要明白两个变量,后面介绍安装时,会用这两个变量 GOROOT   , 这是go的工作目录,比如 /home/[替换为你的用户名]/go/work GOPATH    , 这是go的安装目录, ...

  4. Ubuntu 16.04/CentOS 6.9安装Node.js 6.9.5

    Ubuntu: CentOS: wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz tar -xvf node-v6.9. ...

  5. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  6. 如何在Ubuntu 16.04上安装Nginx

    原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...

  7. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本

    之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...

  8. Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

    Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...

  9. Ubuntu 16.04下使用Eclipse:创建工程时卡死的解决方法

    问题如下: Ubuntu 16.04下使用Eclipse创建工程时出现卡顿和卡死,新建一个MapReduce项目卡了一下午,鼠标变成了圆圈进度条转了一下午,还关不掉. 当我直接去关闭新建项目的窗口时, ...

随机推荐

  1. Android手机QQ文件夹解析

    注:切勿修改手机QQ文件夹,以免造成不必要的使用问题及无法修复的数据丢失] 安卓手机QQ tencent文件夹解析 QQ下载的聊天背景:tencent→MobileQQ→system_backgrou ...

  2. js 混合排序(类似中文手机操作系统中的通讯录排序)

    在阳光明媚最适合打盹的下午, 特意静音的手机竟然动起来了, 你没看错, 它震动了.... 上帝(顾客)来电, "报表查询系统左侧树状菜单中设备的中文名称不能排序", 要增加排序功能 ...

  3. 【iOS】得到当前年、月、周的第一天和最后一天

    在写一个记账软件,其中有个统计功能.比如,统计某月的支出,需要知道某天所在的月的第一天和最后一天,以便从数据库中根据时间取数据. 话不多说,上代码: // // EBDate.h // ChargeM ...

  4. Python 之父的解析器系列之七:PEG 解析器的元语法

    原题 | A Meta-Grammar for PEG Parsers 作者 | Guido van Rossum(Python之父) 译者 | 豌豆花下猫("Python猫"公众 ...

  5. zookeeper特性与节点说明

    一.zookeeper概要.背景及作用 zookeeper产生背景: 项目从单体到分布式转变之后,将会产生多个节点之间协同的问题.如: 每天的定时任务由谁哪个节点来执行? RPC调用时的服务发现? 如 ...

  6. pyinstaller程序打包工具

    PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...

  7. 正则表达式在Java中使用

    正则表达式 定义 用一组特殊的字符来描述一组字符串的格式 用于验证字符串是否满足格式 不关心字符串的内容是否有效 1. 基本正则表达式所谓正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式 ...

  8. 【原】git如何撤销已提交的commit(未push)

    输入git log,我们可以看到最近的3次提交,最近一次提交是test3,最早的一次是test1,其中一大串类似黄色的字母是commit id(版本号) 如果嫌输出信息太多,可加上--pretty=o ...

  9. Python 命令行参数解析工具 argparse

    为什么需要argparse 开门见山,举一个简易计算器代码的例子,其中sys.argv用来读取脚本执行时后面传入的参数. def calculator(x, y, operation): if &qu ...

  10. Springboot】Springboot整合邮件服务(HTML/附件/模板-QQ、网易)

    介绍 邮件服务是常用的服务之一,作用很多,对外可以给用户发送活动.营销广告等:对内可以发送系统监控报告与告警. 本文将介绍Springboot如何整合邮件服务,并给出不同邮件服务商的整合配置. 如图所 ...