当前位置:首页 > 技术文章 > 正文内容

nodejs+express,搭配Nginx提高性能,以及为什么要使用Nginx?

arlanguage4个月前 (01-15)技术文章34

nodejs是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHPPythonPerlRuby等服务端语言平起平坐的脚本语言

nginx作为一个具有高性能httphttps反向代理web服务器,非常适合托管静态资源文件。

通常我们使用Express框架来搭建一个nodejs web应用,这是一个非常不错的选择。现在我们通过一些例子来探讨今天的问题。


express 创建应用 基本实例

import express from "express";
const app = express();
// ... app.use、路由(app.get、app.post) 等。
// app.use(express.static("assets"));
app.get('/', (req, res) => {
  res.send('Hello World!')
})
app.listen(80, () => {
  console.log(`port:${port}`)
})


express.static 直接挂载静态文件

app.use(express.static("assets"));
// http://localhost:8080/img/logo.png
// http://localhost:8080/css/index.css


express.static 添加别名/虚拟目录 挂载静态文件

app.use("/static", express.static("assets", { setHeaders }));
// http://localhost:8080/static/img/logo.png
// http://localhost:8080/static/css/index.css


sendFile 发送静态文件

比如说在多租户架构下,一个nodejs应用同时绑定N个站点

举例:

// typescript 代码实例
sendFile(req: core.Request, res: core.Response, host_code:string) {
    const filePath = `./sites/${host_code}${decodeURIComponent(req.path)}`;
    res.sendFile(filePath, { root: path.resolve(".") }, (err) => {
        if (err) {
            // ...
        }
    });
}

在实际应用过程中,当访问量较大时,体验不是很完美。这个时候nginx登场了,完美的解决了相关问题,所以合理利用不同工具,争取做到尽善尽美,是乃毕生之所追求。


nginx 代理nodejs,并直接托管静态资源不走Nodejs

server{
   listen      80;
   server_name video.prvt.cool;
  location / {
    # ... 其它配置
    proxy_pass http://127.0.0.1:9010; 
   }
   location /css {
       alias  d://sites/web0015/assets/;
   }
}
server{
   listen      80;
   server_name music.prvt.cool;
  location / {
    # ... 其它配置 
    proxy_pass http://127.0.0.1:9010; 
   }
   location /css {
       alias  d://sites/web0017/assets/;
   }
}
server{
   listen      80;
   server_name prvt.cool www.prvt.cool;
  location / {
    # ... 其它配置
    proxy_pass http://127.0.0.1:9010; 
   }
   location /css {
       alias  d://sites/web0016/assets/;
   }
}


运行多个Node应用程序时

当您运行多个nodejs应用程序时,您希望他们都使用80端口时,这时候使用NGINX来代理,将会是一个完美的选择


人人为我,我为人人,欢迎您的浏览,我们一起加油吧。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/872.html

标签: nginx别名
分享给朋友:

“nodejs+express,搭配Nginx提高性能,以及为什么要使用Nginx?” 的相关文章

nginx 概述以及学习

假设你是一名网站管理员,你的网站每天都有数百万次的访问量,但是最近你发现有些用户反映访问速度很慢,甚至会出现连接超时的错误。你怀疑是服务器负载过高导致的,因此决定使用nginx作为反向代理服务器来优化网站的性能。你打算将nginx部署在一台独立的服务器上,并将所有的客户端请求通过nginx进行分发和...

一次说清-Nginx反向代理及参数配置

我们在配置服务时常常会用到Nginx来设置反向代理,虽然常用,但是我们真的了解各个参数的意思吗?不如我们一起来看下吧。1、反向代理反向代理(reverse proxy)方式是指用代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络中的上游服务器,并将从上游服务器上得到的结果返回给I...

Nginx笔记

内容介绍 1、nginx基本概念。(1) nginx是什么,能做什么事情(2) 反向代理。(3) 负载均衡。(4) 动静分离2、nginx 安装、常用命令和配置文件(1)在liunx系统中安装nginx.(2) nginx常用命令。(3) nginx 配置文件。3、nginx 配置实例 1-反向代理...

Nginx配置中root和alias分不清?本文3分钟帮你解惑

Nginx在配置映射路径的时候,有时候看到的是root,有时候看到的是alias,这两个有什么区别?本文笔者将带大家详细了解一下。什么是NginxNGINX 是全球最受欢迎的 Web 服务器之一,用于反向代理和负载均衡,还提供 HTTP 服务器功能,主要是为实现最大性能和稳定性而设计的。Ubuntu...

给你的Nginx加个防火墙

引言朋友的一个 WordPress 站经常访问慢。看了一下日志,发现整天被扫描网站目录,如phpmyadmin 或者 SQL 文件,和被 CC攻击。找了一下,发现 ngx_lua_waf 是个不错的方案,但是太久不更新了,而且代码我看不懂,猝最后找到 oneinstack 一键包内置的 ngx_lu...

如何在本地部署WEB开发(PHP)环境

目前很多网站程序是基于PHP语言,比如比较有名的开源程序WordPress、Discuz、DedeCMS...对于大多初学者来说,本地部署WEB环境(PHP/ASP+Apache/Nginx+Mysql),一个一个安装调试是一件很麻烦的事。所以这次分享一下如何在本地快速搭建WEB环境!考虑到大家大多...