因此,在12小时轮班三周后,我几乎完成了使用撇号建立知识库系统。现在是加速前端事物的任务。我的问题是:
非常感谢任何帮助。
答案 0 :(得分:2)
我是P' unk Avenue的Apostrophe的首席开发人员。
听起来你发现我们的部署HOWTO最近添加了关于缩小的材料,所以你自己整理了那部分。这很好。
至于服务器上的expires头和gzip,虽然您可以直接在节点中执行此操作,但我们不会!通常,我们从不直接与最终用户进行节点对话。相反,我们使用nginx作为反向代理,它为我们提供了负载平衡,并允许我们直接提供静态文件。 nginx,用C / C ++编写,速度更快。此外,gzip和TLS的实现经受了很大的考验。不需要让javascript做他们不擅长的事情。
我们通常使用mechanic来配置nginx,我们创建它是为了使用一些命令管理nginx而不是手动编写配置文件。我们的标准配方包括gzip和expires头。
但是,这是它创建的nginx配置文件的带注释版本。您将看到它涵盖了静态文件的负载平衡,gzip和更长的到期时间。
# load balance across 4 instances of apostrophe listening on different ports
upstream upstream-example {
server localhost:3000;
server localhost:3001;
server localhost:3002;
server localhost:3003;
}
server {
# gzip transfer encoding
gzip on;
gzip_types text/css text/javascript image/svg+xml
application/vnd.ms-fontobject application/x-font-ttf
application/x-javascript application/javascript;
listen *:80;
server_name www.example.com example.com;
client_max_body_size 32M;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log;
# reverse proxy: pass requests to nodejs backends
location @proxy-example-80 {
proxy_pass http://upstream-example;
proxy_next_upstream error timeout invalid_header http_500 http_502
http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Deliver static files directly if they exist matching the URL,
# if not proxy to node
location / {
root /opt/stagecoach/apps/example/current/public/;
try_files $uri @proxy-example-80;
# Expires header: 7-day lifetime for static files
expires 7d;
}
}