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

【如何配置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卸载静态文件来缩短显着的响应时间。

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

文章图片
如你所见, 当我在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 supportproxy_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服务器感兴趣。

    推荐阅读