个性化阅读
专注于IT技术分析

如何配置Nginx为Node.js服务静态文件

通过利用Nginx提供静态文件来加快Node.js和Socket.io Web应用程序的加载时间

Node.js是一个出色的JavaScript运行时环境, 你可以用来从中服务整个Web资产(静态+动态)。

如果你正在从事小型的实验性项目, 那么可能就可以了, 但是, 如果考虑到响应时间, 则必须考虑在Node.js之前使用Nginx之类的Web服务器来提供静态文件。

实际上, 不仅要提供静态文件, 而且从安全角度考虑, 你都应该考虑使用Nginx。

最近, 我正在研究Site Relic(网站SEO和安全分析器), 在这里我使用Node.js, Socket.io, 并且能够通过从Nginx卸载静态文件来缩短显着的响应时间。

是-磅

如你所见, 当我在29日将静态文件移至Nginx时, 响应时间大大减少了。

因此, 如果你使用Node.js交付图像, js, CSS, 字体等, 则请考虑并考虑分开职责。

让我们看看我是如何做到的。

假设你已经安装了Nginx和Node.js。进行修改之前, 请对现有配置进行备份, 以便在出现问题时进行回滚。

  • 转到安装Nginx的位置(在基于UNIX的操作系统(如CentOS / Ubuntu)上, 默认值为/ etc / nginx)
  • 转到可用的站点
  • 使用以下命令创建一个新文件(为便于理解, 你可以将该文件命名为域名)
upstream backend {
server localhost:3000;
}

server {
listen 80;
server_name siterelic.com;

root /var/tools/public;

location / {
try_files $uri @backend;
}

location @backend {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Following is necessary for Websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

以上是五个关键要素, 让我一一讲解。

  1. 上游–将变量指定为”后端”, 并提供node.js服务器和端口信息。在一个示例中, 我给了localhost:3000, 这意味着我正在与Nginx一起在具有3000端口号的同一服务器上运行node.js。
  2. 服务器–给出Nginx应该监听的端口号, 并以服务器名作为你的域名。
  3. 根目录–你要在其中提供静态文件的目录。
  4. 位置-这很重要。我要求Nginx尝试在具有根位置的指定目录中查找文件, 如果不匹配, 请转到@backend, 即node.js
  5. [电子邮件保护] –这是通用的node.js + websocket.io代理配置

通过创建符号来启用/ etc / nginx / sites-enabled中的站点

  • cd / etc / nginx / sites-enabled
  • ln -s / etc / nginx / sites-available / $ yourdomainname。

重新启动Nginx, 玩得开心!

通过以上配置, 我能够显着改善响应时间, 希望你也可以。

如果你是Nginx的新手, 那么你可能会对学习如何从头开始构建高性能Nginx服务器感兴趣。

赞(0)
未经允许不得转载:srcmini » 如何配置Nginx为Node.js服务静态文件

评论 抢沙发

评论前必须登录!