关闭

【NodeJs】Linux安装NodeJs并配合Nginx实现反向代理

标签: nginxnodejs
17658人阅读 评论(3) 收藏 举报
分类:

Linux安装NodeJs并配合Nginx实现反向代理

NodeJs

是什么

Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。

Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

本地安装(OS X)

版本选择

  • V4.4.4,长期支持版本,成熟可靠
  • V6.2.0 稳定版本,最新特性

这里我还是倾向于使用最新的版本~

下载安装包

https://nodejs.org/dist/v6.2.0/node-v6.2.0.pkg

双击安装安装包

下一步下一步,就安装完成了。

简单执行

node -v

v6.2.0

本地运行(OS X)

创建demo文件

const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

写入到文件example.js

执行文件

node example.js

这时命令行输出Server running at http://127.0.0.1:3000/

同时在浏览器输入http://127.0.0.1:3000/,页面输出Hello World

关闭终端,页面不再可用。

Express框架

我们这里采用Express框架进行网站项目demo的搭建。

npm install express

node_modules

创建demo.js文件

var express = require('express');
app = express(); 
app.use(express.static(__dirname + '/public'));  
app.listen(8081)

在同级文件夹创建public文件夹,里面放入静态文件1.jpg

在浏览器输入http://127.0.0.1:8081/1.jpg

查看Response Headers,X-Powered-By:Express

服务器安装(CentOS 7)

安装node

curl --silent --location https://rpm.nodesource.com/setup | bash -
yum -y install nodejs
yum install npm

关于Node的版本

我上一步通过node安装的版本号是v0.10.42,一开始以为错了,经过查资料发现,目前node共维护了4个版本

  • v0.10.42 (LTS)
  • v0.12.10 (LTS)
  • 4.4.5 LTS
  • 6.2

呵呵哒,真乱。

编写demo实例

这部分的流程跟上面的一致。

安装forever 并运行

npm install forever -g

forever start app.js

配置Nginx

cd /usr/local/nginx/conf/vhost/

vi demonode.coderfix.cn.conf

server {
listen 80;
server_name demonode.coderfix.cn;
    location / {
    proxy_pass http://127.0.0.1:8899;
    }
}

Nginx解析域名,转发给本地的nodejs的8899端口~

配置域名解析并访问

http://demonode.coderfix.cn/

这样就完成了nodejs和nginx的部署。

可能出现的问题

Nodejs服务多开导致报错

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: listen EADDRINUSE
    at errnoException (net.js:884:11)
    at Server._listen2 (net.js:1022:14)
    at listen (net.js:1044:10)
    at Server.listen (net.js:1110:5)
    at Object.<anonymous> (folderName/app.js:33:24)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

关掉之前启动的进程,再开就好了。

ps aux | grep node

kill -9 ****

参考资料

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

nginx反向代理部署nodejs

node开发阶段,一般都会用http 模块启一个本地服务器,方便调试。 它大概是这样的:var http = require("http"); var server = http.createServer(); server.listen(8888);那么问题来了,我的应用都已...
  • jiestyle21
  • jiestyle21
  • 2016-05-13 10:21
  • 4397

nodejs使用nginx端口转发,端口映射,反向代理,子域名映射到不同端口

使用nginx将端口映射到另一个端口,或者子域名分别映射到不同端口。
  • w20101310
  • w20101310
  • 2017-12-18 18:37
  • 149

NodeJS on Nginx: 使用nginx反向代理处理静态页面

最近OurJS后台已经从纯node.js迁移到了Nginx+NodeJS上来了,感觉性能提升了不少,特与大家分享。 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 I...
  • pintu274111451
  • pintu274111451
  • 2017-11-13 22:45
  • 77

NodeJS on Nginx: 使用nginx反向代理处理静态页面

转载来源于:http://ourjs.com/detail/nodejs-on-nginx-%E4%BD%BF%E7%94%A8nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%A4%84%E7%90%86%E9%9D%99%E6%80%81%E9%A1%B5...
  • dc_show
  • dc_show
  • 2015-01-30 15:52
  • 976

Node.js 获取客户端IP, 以及nginx转发携带客户端ip配置

nginx配置中, 如果需要转发 可以加上proxy_set_header, 请求头 location /node { proxy_set_header Host $host; //原请求来源ip 真实ip最可信 proxy_set_header X-...
  • zwrj1130
  • zwrj1130
  • 2017-03-31 17:48
  • 1346

Nginx作为Nodejs的反向代理

location ^~ /app/ {                 proxy_set_header X-Real-IP $remote_addr;        ...
  • pangxiaoxixi
  • pangxiaoxixi
  • 2017-07-02 10:40
  • 554

Nginx反向代理Node.js-https

简介 本文内容涉及到 Nginx反向代理服务器,将请求转发到后端Node.js 设置转发时遇到的问题 请求转发(https) 服务器的搭建主要是为微信小程序服务,微信小程序规定所有请求必须为https,所以服务器申请域名后需要申请SSL证书,Nginx配置https。
  • Hongwing
  • Hongwing
  • 2017-04-20 15:04
  • 1060

nginx反向代理nodejs

nginx version: nginx/1.10.1   设置nginx node的反向代理,在/etc/nginx/conf.d/include/nginx.code.conf 然后在etc/nginx/nginx.conf里添加一句include /etc/nginx/conf...
  • smile_bestSun
  • smile_bestSun
  • 2016-12-21 15:47
  • 445

服务器nginx+nodejs配置

nodejs默认端口是3000,而服务器原来就有nginx+php网站80端口已经占用,现在配置nginx反向代理到nodejs的3000端口 nginx配置反向代理 location / { proxy_pass http://127.0.0.1:3000; ...
  • a454213722
  • a454213722
  • 2016-06-09 12:00
  • 7664

nodejs与nginx的完美搭配

引言node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。nginx的安装以及配置这里以cenos环境为基础进行配置1、基础编译环境的配置C/C++...
  • qq_17475155
  • qq_17475155
  • 2017-03-26 12:55
  • 12209
    个人资料
    • 访问:597341次
    • 积分:8630
    • 等级:
    • 排名:第2640名
    • 原创:293篇
    • 转载:13篇
    • 译文:4篇
    • 评论:73条
    博客专栏
    微信订阅号
    欢迎加入QQ群
    玩家老黄历(微信小程序)
    谢谢支持~
    最新评论