最好的方法是使用 nginx 服务器为您提供静态文件,并让您的 Node.js 服务器处理动态内容。
它通常是减少 Node.js 服务器上的请求量的最优化解决方案,该服务器比 nginx 更慢地服务器静态文件,例如:
如果您已经为 Nodejs 应用程序设置了反向代理,那么实现这一点的配置非常简单。
nd nginx 配置可以是
root /home/myapp;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location /public/ {
alias /home/myapp/public/;
}
location / {
proxy_pass http://IPADRESSOFNODEJSSERVER:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
}
url 的第一部分带有 /public/ 的每个请求都将由 nginx 处理,并且每个其他请求将被代理到您的 Nodejs 应用程序IPADRESSOFNODEJSSERVER:NODEJSPORT
通常是IPADRESSOFNODEJSSERVER
是本地主机
Express 的文档部分告诉我们http://expressjs.com/en/advanced/best-practice-performance.html#proxy http://expressjs.com/en/advanced/best-practice-performance.html#proxy
更好的选择是使用反向代理来提供静态文件;
有关详细信息,请参阅使用反向代理。
而且nginx会让你轻松定义缓存规则因此,对于不改变的静态资源,它也可以用一行来加速您的应用程序。
location /public/ {
expires 10d;
alias /home/myapp/public/;
}
您可以在互联网上找到很多比较这两种方法的文章,例如:http://blog.modulus.io/supercharge-your-nodejs-applications-with-nginx http://blog.modulus.io/supercharge-your-nodejs-applications-with-nginx