为了账号安全,请及时绑定邮箱和手机立即绑定

为流星推荐的Nginx配置

为流星推荐的Nginx配置

慕森王 2019-10-26 12:39:10
我的流星应用程序的站点配置具有如下指令:server {  listen 443;  server_name XXX;  ssl on;  ssl_certificate XXX;  ssl_certificate_key XXX;  location / {    proxy_pass http://localhost:3000;    proxy_set_header X-Real-IP $remote_addr;  # http://wiki.nginx.org/HttpProxyModule    proxy_http_version 1.1;  # recommended for keep-alive connections per http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version    proxy_set_header Upgrade $http_upgrade;    proxy_set_header Connection "upgrade";    proxy_set_header Host $host;  }}我觉得我应该告诉nginx提供的内容static_cacheable并将expires标头设置为max。我到底该怎么做?我还要在这里添加其他内容吗?
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

尽管我不是Nginx专家,但我觉得我现在对如何执行此操作有了更好的了解。当我发现更多信息时,我将更新此答案。


我最初的问题的一种可能的解决方案是:


location ~* "^/[a-z0-9]{40}\.(css|js)$" {

  root /home/ubuntu/app/bundle/programs/web.browser;

  access_log off;

  expires max;

}

内容如下:在该web.browser目录中,可以找到此站点的任何网址,该网址包含斜杠后跟40个字母数字字符+ .js或.css 。静态地为这些文件提供服务,不要将它们写入访问日志,并告诉客户端它们可以永远被缓存。


因为主要的css和js文件是在每个bundle操作后唯一命名的,所以这样做应该是安全的。


我将在此处维护此示例的完整版本。还值得注意的是,我正在使用最新的nginx版本,该版本支持WebSockets,如此处所述。


最后,不要忘记在您的nginx配置中完全启用gzip。我的gzip部分如下所示:


gzip on;

gzip_disable "msie6";

gzip_vary on;

gzip_proxied any;

gzip_comp_level 6;

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

完成所有这些之后,我在pagespeed上获得了不错的成绩。


查看完整回答
反对 回复 2019-10-26
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

尼斯-很高兴您能正常使用。我没有将gzip设置添加到要点,因为它们确实属于您的主要nginx.conf的不同部分,而不是站点配置中。我认为这是真正的解决方案,如果我写博客介绍如何在生产中做到这一点。当我这样做时,我将从答案中添加一个链接。

查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 442 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信