Rém*_*ras 7 reverse-proxy nginx node.js express
我已经用它nginx作为reverse proxy我的node.jswebapps 服务3000<->80.实际上,我使用express.static中间件在节点应用程序中提供我的资产.
我再次阅读并阅读nginx提供静态文件非常有效.
问题是,什么是最好的?像我已经做的那样提供资产,或者直接配置nginx来提供静态文件?
或者几乎一样?
Aal*_*eks 12
最好的方法是使用nginx服务器为您提供静态文件,并让node.js服务器处理动态内容.
它通常是最优化的解决方案,可以减少node.js服务器上的请求数量,该服务器对服务器静态文件比nginx慢,例如:
如果您已经为nodejs app设置了反向代理,那么实现这一目标的配置非常简单.
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;
}
Run Code Online (Sandbox Code Playgroud)
每个使用/ public /在url的第一部分的请求都将由nginx处理,并且每个其他请求都将代理到您的nodejs app,IPADRESSOFNODEJSSERVER:NODEJSPORT通常IPADRESSOFNODEJSSERVER是localhost
快递的doc部分告诉http://expressjs.com/en/advanced/best-practice-performance.html#proxy
更好的选择是使用反向代理来提供静态文件; 有关详细信息,请参阅使用反向代理.
此外,nginx将允许您轻松定义缓存规则,因此对于不更改它的静态资产,也可以使用一行加速您的应用程序.
location /public/ {
expires 10d;
alias /home/myapp/public/;
}
Run Code Online (Sandbox Code Playgroud)
你可以在网上找到很多比较这两种方法的文章,例如:http: //blog.modulus.io/supercharge-your-nodejs-applications-with-nginx
| 归档时间: |
|
| 查看次数: |
8141 次 |
| 最近记录: |