阿里云搭建 discourse 论坛踩坑记

安装文章参考:

  • 30 分钟内在云上部署 Discourse (实际上阿里云访问 Github 速度很慢,至少需要 40 分钟以上)

https://meta.discoursecn.org/t/topic/26

  • 在大陆地区的云上部署 Discourse

https://meta.discoursecn.org/t/topic/28

记得一定要设置 docker 镜像 源。

另外,本人尝试多次 使用 nginx 的反向代理让一台 vps 运行多个站点,但是最后,discourse 论坛都是 403 不能访问。

建议没有时间和精力不要再轻易尝试这个。

最后,庆祝一下本站拥有专属阿里云 VPS,从此论坛访问不再卡顿 :smile:

本站 VPS: 阿里云最低配,非 SSD。

7 个赞

手里俩台腾讯云学生机, 一个月一块钱, 硬盘比本地机械硬盘慢, 1m宽带 .,论坛源貌似也是1m,下载只有130kb, 访问github我基本靠爬*, 墙

我拿着就是装了几个出名emacs配置, 然后发现还比不上docker, 但是docker里面用emacs, 主题不正常,不知道为什么

如果经常折腾。 编译成docker吧

本来就是docker 安装呀

山人,不知道在这个主题下反馈是不是合适,不过论坛的搜索功能好像不能用了。

我试了一下,没问题啊

以前搜索是有实时显示的搜索结果的,现在需要输入关键词然后 回车 进入搜索界面才能显示搜索结果。

下面用图片说明一下,以前搜索的时候,只要存在关键词 spacemacs,是不会显示 没有找到搜索结果 的,显示的是部分匹配的搜索结果。现在需要回车之后进入搜索界面才可以得到搜索结果。

测试环境:Safari + macOS 和 Firefox Nightly + Arch Linux

可能是升级导致的 bug,等后面 discourse 出新版本了更新一下试试。

@guanghui.qu 你前端用nginx,后端是不是配置了ssl?如果是这样,确实是有问题的,会导致http->https循环跳转,然后连接被中断。如果要nginx做代理,ssl配置在nginx上面,就不会出现问题

ssl 是配置在 nginx 上面的,后端没有任何配置。

能否贴下配置文件? 我看看

下面是我用的方法, discourse 论坛搭在 http://discourse.example.com:25654/

然后下面是 nginx 的配置。

server {
        listen 80;
        server_name discourse.example.com;
        return 301 https://discourse.example.com$request_uri;
}
server {
        listen 443 ssl spdy; 
        server_name discourse.example.com;
        ssl_certificate /etc/letsencrypt/live/discourse.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/discourse.example.com/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_prefer_server_ciphers on;
        location / {
                proxy_pass      http://discourse.example.com:25654/;
                proxy_read_timeout      90;
                proxy_redirect  http://discourse.example.com:25654/ https://discourse.example.com;
        }
}

我参考的文章是:

你看看有没有错误。。

25654这个端口是启动一个web服务么? 既然走了 proxy_pass,那proxy_redirect http://discourse.example.com:25654/ https://discourse.example.com;这句话就不能加了吧。你试试去掉呢

这个我暂时没时间弄了,其他人在负责

嗯嗯。 如果是在docker上面部署的话, 是有很多坑!

就是docker……阿里云低配性能差,网速慢,说多了都是泪:sob:

刚刚升级完了

已经好了

2 个赞

我用官方的 discourse_docker 在墙外反而安装失败了,插件没法安装,去掉就过了:

root@vps:/var/discourse# cat containers/app.yml
...
hooks:
after_code:
    - exec:
        cd: $home/plugins
        cmd:
        - git clone https://github.com/discourse/docker_manager.git
...

错误提示

root@vps:/var/discourse# ./launcher bootstrap app … sh: 1: cd: can’t cd to /plugins … FAILED ~-------------------- Pups::ExecError: cd /plugins && git clone GitHub - discourse/docker_manager: plugin for use with discourse docker image failed with return #<Process::Status: pid 256 exit 2> Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn’ exec failed with the params {“cd”=>“/plugins”, “cmd”=>[“git clone GitHub - discourse/docker_manager: plugin for use with discourse docker image”]} 2681d84b0139d7678da34d437837242e20b403d854b1016e53bb46b0766b4801 ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one …

变量 $home 为空, 这有问题吗?

完整日志: discourse-docker_bootstrap-failure_cant-cd-to-plugins - Pastebin.com

不太清楚,这个 docker_manager 我安装没啥问题。