用Nginx 分离Plone静态资源文件

用Nginx 分离Plone静态资源文件

在Nginx的http context下,添加如下两个server block:

主 block:

# http
server {
listen 127.0.0.1:80;
server_name cms.315ok.org;
access_log /var/log/nginx/cms.315ok.org_access.log;
#p1 rewrite ^/\+\+plone\+\+production/\+\+unique\+\+.+/([A-Za-z0-9]+\.js)$ http://$server_name/cms/$1 redirect;
rewrite ^(.*)(/login_|/require_login|/failsafe_login_form)(.*) https://$server_name$1$2$3 redirect;
if ($http_cookie ~* "__ac=([^;]+)(?:;|$)" ) {
rewrite ^(.*) https://$host/$1 redirect;
}

#p1 location /cms/ {
#p1 root /home/plone/workspace/statics;
#p1 }

location ~* ^/\+\+plone\+\+production/\+\+unique\+\+.+/([A-Za-z0-9]+\.(js|css))$ {
proxy_pass http://127.0.0.1:8989/cms/$1;
}


location / {
# Simple requests
if ($request_method ~* "(GET|POST)") {
add_header "Access-Control-Allow-Origin" *;
}

# Preflighted requests
if ($request_method = OPTIONS ) {
add_header "Access-Control-Allow-Origin" *;
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
return 200;
}


proxy_pass http://myzope/VirtualHostBase/http/cms.315ok.org:80/cms/VirtualHostRoot/;
}
}

从block (服务静态文件):

server {
listen 127.0.0.1:8989;
server_name images.315ok.org;
access_log /var/log/nginx/images.315ok.org_access.log;

location / {
root /home/plone/workspace/statics;
expires 30d;
}
}
设置