如何为PSGI / Plack Web应用程序(在Perl中)提供静态文件(图像等)



如何为基于PSGI/Plack的Web应用程序提供静态文件(图像,javascript,样式表)?

答案可能取决于人们使用的Web服务器,无论是CGI,FastCGI,mod_psgi,还是像Starman这样的纯Perl。 我听说使用 Plack::Middleware::Static 或 Plack::App::File(连同 Plack::App::URLMap)仅用于开发......

就实时部署而言,一个非常简单(且快速)的设置是,如果您让Web服务器处理静态内容并让Plack应用程序处理动态内容。这通常需要在您的 Web 服务器配置中至少 2 个代理。 代理 A 到静态文件(假设它们通常都位于同一位置),代理 B 到部署 Plack 应用的端口。

例如,nginx 配置的一部分可能如下所示。 假设 Plack 应用在本地端口 5001 上运行,并且静态文件在 url http://mydomainname.com/static 下可用

server {
    listen 80;
    server_name mydomainname.com;
    location / {
        proxy_pass http://localhost:5001/;
        proxy_redirect 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-Port $server_port;
        proxy_set_header   X-Forwarded-Host $host;
    }
    location /static {                                                                                                                                             
        root /path/to/static/files;                                                                                                                         
    }
}

相关内容

  • 没有找到相关文章

最新更新