Ubuntu 16.04下配置 Nginx 与 Node.js 以及服务的部署
第一步:安装nginx
sudo apt-get update
sudo apt-get install nginx
如果遇到依赖问题,尝试执行sudo apt-get -f install命令
第二步:配置nginx
- 首先备份原先的配置文件:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup - 修改配置文件:
如果你熟悉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
- 使用vi打开配置文件:
- 测试配置文件:
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
- 重启nginx服务:
sudo service nginx restart
第三步:安装npm和nodejs
直接使用sudo apt install进行安装的话,版本比较低,因此这里在官网下载进行安装.
- 使用wget进行下载:
wegt https://nodejs.org/dist/v12.1.0/node-v12.1.0-linux-x64.tar.xz - 解压缩:
tar xf node-v12.1.0-linux-x64.tar.xz - 创建指向我们所下的版本的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
- 测试:
npm -v
node -v
nodejs -v
第四步:部署服务
- 安装进程守护工具pm2:
npm install -g pm2 - 从Github把项目clone下来:
git clone https://github.com/songwonderful/practice-nodejs.git - 进入项目目录:
cd practice-nodejs - 安装依赖库:
npm install - 使用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
参考
- https://www.imooc.com/article/31410
- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04
- https://www.cyberciti.biz/faq/nginx-linux-restart/
Ubuntu 16.04下配置 Nginx 与 Node.js 以及服务的部署的更多相关文章
- Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发
Ubuntu16.04下: sudo apt -get nginx 用这条命令安装完nginx之后, nginx在该目录下: 然后配置nginx: 如下: 红圈圈住的地方多写几个可以做负载均衡. 端口 ...
- Ubuntu 16.04下配置intel opencl环境
一. 靠谱的安装教程 1. 官网教程 https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg,打开后往下拉到[4. Prod ...
- Ubuntu 16.04下配置Golang开发环境
安装之前先要明白两个变量,后面介绍安装时,会用这两个变量 GOROOT , 这是go的工作目录,比如 /home/[替换为你的用户名]/go/work GOPATH , 这是go的安装目录, ...
- 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. ...
- Ubuntu 16.04下的LAMP环境配置
在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...
- 如何在Ubuntu 16.04上安装Nginx
原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...
- 【转】Ubuntu 16.04安装配置TensorFlow GPU版本
之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.0 ...
- 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的一个分支首 ...
- Ubuntu 16.04下使用Eclipse:创建工程时卡死的解决方法
问题如下: Ubuntu 16.04下使用Eclipse创建工程时出现卡顿和卡死,新建一个MapReduce项目卡了一下午,鼠标变成了圆圈进度条转了一下午,还关不掉. 当我直接去关闭新建项目的窗口时, ...
随机推荐
- Vue学习之不同组件之间的消息传递
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD
随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面 ...
- 08.Django基础六之ORM中的锁和事务
一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在事务里面,至于如何开启事务,我们看下面的事务一节. 返回一个锁住行直 ...
- Hbase入门(三)——数据模型
Hbase最核心但也是最难理解的就是数据模型,由于与传统的关系型数据库不同,虽然Hbase也有表(Table),也有行(Row)和列(Column),但是与关系型数据库不同的是Hbase有一个列族(C ...
- .Net Core 商城微服务项目系列(七):使用消息队列(RabbitMQ)实现服务异步通信
RabbitMQ是什么,怎么使用我就不介绍了,大家可以到园子里搜一下教程.本篇的重点在于实现服务与服务之间的异步通信. 首先说一下为什么要使用消息队列来实现服务通信:1.提高接口并发能力. 2.保证 ...
- Python集训营45天—Day08 (文件操作)
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...
- 利用双重检查锁定和CAS算法:解决并发下数据库的一致性问题
背景 最近有一个场景遇到了数据库的并发问题.现在先由我来抽象一下,去掉不必要的繁杂业务. 数据库表book存储着每本书的阅读量,一开始数据库是空的,不存在任何的数据.当用户访问接口的时候,判断 ...
- 【SQL】sql统计不同类别的不同状态的数目
例子:某主机下有5149个设备,设备分不同类别,设备运行会有不同状态(1-正常.2-告警.3-故障.0-离线) sql: SELECT t.DEVICE_TYPE_NAME,SUM(CASE t.DE ...
- java集合类之ArrayList详解
一.ArrayList源码分析 1.全局变量 (1)默认容量(主要是通过无参构造函数创建ArrayList时第一次add执行扩容操作时指定的elementData的数组容量为10) private s ...
- e课表项目第二次冲刺周期第三天
昨天干了什么? 昨天和我们组的组员商量,确定了第二个界面的框架内容,即内容的输入和完成按钮,然后通过在网上搜索图片资源,然后我们利用ps软件,将图片通通设置了大小,进行了裁剪,最后为我们所利用,实现第 ...