配置Nginx for Node.js服务静态和动态内容的Web应用程序

  • 内容
  • 相关

如果您使用nginx proxy_pass作为节点应用的前端,那么您还应该利用nginx的优势,比节点更有效地提供静态内容。这也需要你的节点应用程序的相当多的负载,这不应该花时间为人们要求的数百个静态文件提供服务,并且应该加快你的网页加载时间。

配置如下所示:

server {
    listen 80;
    server_name ksloan.net;

    root /home/kevin/app/public;

    location / {
        try_files $uri @backend;
    }

    location @backend {
        proxy_pass http://127.0.0.1:8080;
        access_log off;
        
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_hide_header X-Frame-Options;
    }
}


我们来看看这是做什么...

首先,我们设置服务器以监听基本的HTTP端口80,对于访问ksloan.net的用户。

我们将根目录设置为我们的公共文件的位置  此目录是我节点应用程序结构的一部分,我保留静态文件,我希望用户可以访问。这包括javascript,样式表,图像和其他第三方库。您的公共目录可能如下所示:

public/
    js/
    css/
    img/
    lib/


你的公开文件中分离到一个单独的目录,您可以有nginx的检查  公共文件夹以查看用户是否请求在那里的任何文件。如果用户正在请求公共文件,nginx可以在不涉及节点服务器的情况下提供该文件。

第一个  位置块告诉nginx,当有人提出任何请求时,我们应该首先尝试从/ public /目录中提供文件,如果失败,继续前进到第二个位置块继续请求。@backend 变量是一个  命名的位置,这使我们能够以此方式重定向请求。

$ URI变量包含用户请求的路径。所以,如果有人请求HTTP:// ksloan.net/css/index.css$ URICSS / index.css如果  /home/kevin/app/public/css/index.css存在,那么nginx将立即提供该文件并结束请求。

在有人请求不存在的文件的情况下,例如  http://ksloan.net/register,nginx将检查  / public / register,当该文件不存在时,它将转发该请求像你的节点应用程序一样。

根据您的网站所提供的静态文件数量,您应该看到node.js请求的显着下降,并减少网页加载时间!

还有其他一些事情可以加快您的网站。如果您的网站负载沉重,您将需要为nginx启用服务器端和客户端缓存,或者可以查看使用CDN。然而,这种设置对于主要适度流量的大多数网站来说都很好。

原文地址 http://ksloan.net/configuring-nginx-for-node-js-web-apps-that-serve-both-static-and-dynamic-content/

本文标签:

版权声明:若无特殊注明,本文皆为《小蓝》原创,转载请保留文章出处。

文章标题:配置Nginx for Node.js服务静态和动态内容的Web应用程序

本文连接:https://www.nswin.cc/grfx/87.html

二维码加载中……

发表评论

电子邮件地址不会被公开。 必填项已用*标注

00:00 / 00:00
顺序播放