-2

Lektor 服务器在 localhost 的 5000 端口上运行。我想通过http://myhost.org/lektor的 Apache URL 访问它。因此,我尝试了 httpd 配置片段

ProxyPass        /lektor http://127.0.0.1:5000
ProxyPassReverse /lektor http://127.0.0.1:5000

欢迎页面的 HTML 被找到,但那里引用的静态页面(例如http://myhost.org/static/style.css)没有找到。如何让 Lektor 知道更改后的 URL?

4

2 回答 2

3

开发服务器不打算用于生产。生产部署基于完全静态的内容,如果您使用|url过滤器,将正确解析静态资产。

于 2016-02-16T18:03:52.987 回答
1

我用稍微不同的语法取得了成功:

ProxyPass / "http://localhost:5000/"
ProxyPassReverse / "http://localhost:5000/"

似乎需要尾部斜杠。我不确定您是否需要其中的实际名称“localhost”,但这对我有用。

我用我的设置做了以下额外的项目,它相当漂亮:

  • 在内部私有 IP 网络服务器上设置 Lektor
  • 设置两个虚拟主机,例如 lektor-web-dev.my.domain 和 lektor-web.my.domain
  • 在 -dev 域上设置自签名证书,并在其 vhost 配置 (Apache) 中使用上述 ProxyPass 项
  • 在 -dev 域上设置基本身份验证,因此至少有一个基本级别的身份验证
  • 设置 rsync deploy 以使用 SSH 密钥对循环回 localhost,并将输出文件复制到 lektor-web.my.domain 的 webroot

现在,lektor-web.my.domain 仍然在没有证书的私人网络服务器上。但是,在我面向公众的网络服务器上,我终止 SSL 并代理到 lektor-web.my.domain。我用letsencrypt获得了证书。

这可以扩展到任意数量的网站。使用主管或其他一些流程管理系统保持 Lektor 管理员运行。使用“lektor server -p portnum”为每个站点的管理员选择不同的端口。您可以使用 HTTP 基本身份验证以及 htpasswd 和 htgroup 文件对各种管理员进行基于组的访问。

于 2016-04-12T14:12:51.630 回答