【问题标题】:Setup Centrifugo server with apache virtual host and ssl使用 apache 虚拟主机和 ssl 设置 Centrifugo 服务器
【发布时间】:2020-02-02 19:14:49
【问题描述】:

我知道大多数人都是倒着做的(从 apache 到 nginx),但是托管这个项目的服务器还有其他具有特定配置的项目,所以......最好坚持我们现有的

我想要完成的是将用于 centrifugo golang 消息服务器的 nginx 虚拟主机配置从文档 example 迁移到 apache2.4

这就是我所拥有的

#### This part it's commented because the server says it has incorrect syntax
# <Proxy "balancer://centrifugocluster"> {
    # Enumerate all upstream servers here, in case you want to clusterize

    # BalancerMember http://127.0.0.1:8000 # default host and port, change it if need it
    # BalancerMember http://127.0.0.1:8001;
# </Proxy>
# ProxyPass / balancer://centrifugocluster/



<VirtualHost *:80>
    ServerName centrifugo.MY_HOSTING.com
    Redirect permanent ^(.*) https://centrifugo.MY_HOSTING.com/$1
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName centrifugo.MY_HOSTING.com

        SSLEngine On
        SSLCertificateFile /PATH/TO/CRT/FILE.crt
        SSLCertificateKeyFile /PATH/TO/KEY/FILE.key
        SSLCertificateChainFile /PATH/TO/CHAIN/FILE.crt

        <Location "/connection/">
            # Required for websockets
            RewriteEngine on
            RewriteCond %{HTTP:Upgrade} =websocket [NC]
            RewriteCond %{HTTP:Connection} upgrade [NC]
            RewriteRule /connection/(.*) http://127.0.0.1:8000/connection/$1 [P,L]
        </Location>

        <Location "/">
            ProxyPass         http://127.0.0.1:8000/
            ProxyPassReverse  http://127.0.0.1:8000/
        </Location>

        ErrorLog ${APACHE_LOG_DIR}/PATH/SERVER_LOG/FILE.log
        CustomLog ${APACHE_LOG_DIR}/PATH/ACCESS_LOG/FILE.log combined

        #### This part I'm not sure how to translate it
        ErrorDocument 500 "Server Error 500"
        ErrorDocument 502 "Server Error 502"
        ErrorDocument 503 "Server Error 503"
        ErrorDocument 504 "Server Error 504"

    </VirtualHost>
</IfModule>

服务器有apache2.4和ubuntu18,centrifugo配置是

{
  "secret": "SECRET",
  "admin_password": "PASSWORD",
  "admin_secret": "ADMIN-SECRET",
  "api_key": "API-KEY",
  "engine": "memory",
  "admin": true,
  "debug": true,
  "log_level": "debug"
}

当前行为

  • 成功重定向到 https 的 url,其他项目使用 ssl 配置效果很好
  • 所有目录路径均已检查并正确
  • 但上面写着404 page not found
  • 当我在浏览器上尝试时,centrifugo.MY-HOST.com 确实显示了这个 404 错误
  • 当我尝试使用websocat 库(来自服务器外部)websocat ws://centrifugo.MY-HOST.com/connection/websocket 时,它显示WebSocketError: Received unexpected status code. Error running
  • 当我尝试使用 websocat 库时(来自服务器内部,我的意思是通过 ssh 连接)websocat ws://localhost:8000/connection/websocket 它挂起...(我相信正在等待消息)
  • centrifugo 服务器已启动并监听 8000 端口,通过 netstat 检查,主管说 running
  • 我在 centrifugo 配置和虚拟主机中将 127.0.0.1 更改为 localhost,将 documentRoot 添加到 apache 项目的路径中,什么都没有...

我做错了什么?

【问题讨论】:

    标签: nginx apache2 virtualhost apache2.4 centrifuge


    【解决方案1】:

    没关系,这是我在主管配置中的错误。我有这个:

    [program:centrifugo]
    command=sudo /var/www/centrifugo-server/centrifugo
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/centrifugo.error.log
    stdout_logfile=/var/log/centrifugo.output.log
    

    我放置了带有完整路径的配置文件并删除了sudo,它就像一个魅力

    command=/var/www/centrifugo-server/centrifugo --config=/var/www/centrifugo/config.json

    我把它留在这里以防这对任何人都有帮助

    无论如何,如果有人知道如何翻译虚拟主机上的平衡器配置,那部分它仍然丢失,谢谢

    【讨论】:

      猜你喜欢
      • 2018-01-25
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多