为流星推荐的Nginx配置

我的流星应用程序的站点配置具有如下指令:


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。我到底该怎么做?我还要在这里添加其他内容吗?


慕森王
浏览 443回答 3
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上获得了不错的成绩。

婷婷同学_

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