Canapin
(Coin-coin le Canapin)
1
您好。我在 CentOS 服务器上安装了 Discourse,同时也使用了 CentOS 网页面板。
看起来 Discourse 中的文件并未被压缩,尽管它默认应使用 Brotli 并在必要时回退到 Gzip。
例如,这个大小为 2.2 MB 的文件:
https://forum.canapin.win/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js
响应头:
accept-ranges: bytes
cache-control: max-age=31536000
cache-control: public,immutable
content-length: 2334732
content-type: application/javascript
date: Sat, 12 Oct 2019 23:36:50 GMT
expires: Sun, 11 Oct 2020 23:36:50 GMT
last-modified: Sat, 12 Oct 2019 23:33:24 GMT
server: nginx/1.16.1
status: 200
请求头:
:authority: forum.canapin.win
:method: GET
:path: /assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
cookie: _t=89fc0a58f2a08712f3156f2687553cf8; __profilin=p%3Dt%2Ca%3Da546654bdc3538a213cd6c6fcc4c2a92; _forum_session=YnhETkNaTjF1YTEzVXUvZW1pS1NuTVVzdm1WWndlRktMdmNlU3hBalR3dUYwRGVUTzhBSlM5WkNiS0hDdVQvRmtGeGtLOTRRNndRWk9YUFczbTJHdjMyajlNNkpXZ2xzeEZwMkVmd2grcHlILzJVVmZWeFVVNlBERVF4S3VDMkJ0N2pUWktJWitmbXc2MDFFV1VEcG56M09jalRjMEJOb2t6M1NSbjJQUit1eDFRZkdCMGplVjhLK1JUNFVNdnRmVmZuK1B1NVdwK0N5Q1VrNTdDa01tdXh1T3h2aDY4OGx0SDMzRC9Ma0YzdElFS0p6b0x3algvVnRhVlljVDQyOS0tYnpSeFl5MjNoMVFVMm42UE0ybFJ6Zz09--b49c4c072e917618f874818e246298bce81235e5
dnt: 1
pragma: no-cache
referer: https://forum.canapin.win/
sec-fetch-mode: no-cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
有什么原因吗?
您的安装是否遵循我们官方 Docker 安装指南的标准流程?
Canapin
(Coin-coin le Canapin)
3
我参考了以下内容:
在启动应用之前,我修改了 app.yml 中的端口,因为 80 端口已被占用。
我没有使用 discourse setup,因为我已经安装了 Docker。
Canapin
(Coin-coin le Canapin)
4
为了非常精确地说明我如何安装 Discourse,以下是我遵循的步骤:
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
cp samples/standalone.yml containers/app.yml
在此处更改了我的端口:
## 此容器应暴露哪些 TCP/IP 端口?
## 如果您希望 Discourse 与另一个 Web 服务器(如 Apache 或 nginx)共享端口,
## 请参阅 https://meta.discourse.org/t/17247 了解详情
expose:
- "8080:80" # 将主机端口 80 转发到容器端口 8080(http)
- "4443:443" # 将主机端口 443 转发到容器端口 4443(https)
./launcher bootstrap app
./launcher start app
并在 CentOS Web 面板的 nginx 配置中重定向了我的端口:
就是这样。
sam
(Sam Saffron)
5
问题就在这里,它在代理数据,但没有正确地将数据透传过去。
我建议直接使用我们的标准安装方案,它会将互联网直接连接到我们的容器,并为您自动处理所有相关事宜。
Canapin
(Coin-coin le Canapin)
6
谢谢。我对服务器之类的东西不太了解,也不知道如何实现这一点。我之前使用 Plesk 并采用其默认设置,即使配合 nginx 代理也能完美运行。
不过,我会尽力弄清楚这个问题。
Canapin
(Coin-coin le Canapin)
7
感谢 @Arkshine,我的问题已解决。
我需要在 /etc/nginx/proxy.inc 中注释掉以下行:
proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';
现在服务器能正确发送由 Discourse 压缩的文件: