独立 Discourse 安装问题及如何使用单独的 IP 地址?

我一直在尝试弄清楚如何在其他 Nginx 站点旁边安装 Discourse,但在设置过程中,我持续收到以下消息:

警告:计算机的端口 443 似乎无法通过主机名 lush.gg 访问。
警告:连接到 http://<domain>(端口 80)也失败。

我已确认 Cloudflare 没有代理该 IP 地址。我还使用了一个附加到服务器的辅助 IP 地址,而第一个 IP 上已经有一个 Nginx 网站。

已更新的 app.yml:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
## 如果您希望添加 Lets Encrypt (https),请取消注释这两行
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"

## 此容器应暴露哪些 TCP/IP 端口?
## 如果您希望 Discourse 与另一个 Web 服务器(如 Apache 或 Nginx)共享端口,
## 请参阅 https://meta.discourse.org/t/17247 获取详细信息
#expose:
#- "25654:80" # http
#- "443:443" # https

已更新的 Nginx 配置:

server {
    listen <ip address>:80; listen [::]:80;
    server_name <domain>;  # <-- 修改此项

    return 301 https://$host$request_uri;
}

server {
    listen <ip address>:443 ssl http2;  listen [::]:443 ssl http2;
    server_name <domain>;  # <-- 修改此项

    ssl_certificate /data/web/discourse/shared/standalone/ssl/fullchain.pem;
    ssl_certificate_key /data/web/discourse/shared/standalone/ssl/privkey.pem;
    ssl_dhparam          /data/web/discourse/shared/standalone/ssl/dhparams.pem;
    ssl_session_tickets off;
    # 已从帖子中移除:ssl_ciphers ...

    http2_idle_timeout 5m; # 从默认的 3m 提升至 5m
    client_max_body_size 0;

    location / {
        proxy_pass http://unix:/data/web/discourse/shared/standalone/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

我哪里做错了?

您的服务器的 80/443 端口已被其他 nginx 服务器占用,因此 Discourse 无法建立连接。

如果您希望在同一服务器上运行 Discourse 和其他网站,请使用本教程:

1 个赞

是的,我实际上最先就尝试了这个,但我会再试一次并报告结果!

同样令人遗憾!

nginx 配置

server {
    listen 80; listen [::]:80;
    server_name lush.gg;  # <-- 修改此处

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;  listen [::]:443 ssl http2;
    server_name lush.gg;  # <-- 修改此处

    ssl_certificate /etc/letsencrypt/live/lush.gg/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/lush.gg/privkey.pem;
#    ssl_dhparam          /var/discourse/shared/standalone/ssl/dhparams.pem;
    ssl_session_tickets off;
    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;

    http2_idle_timeout 5m; # 从默认的 3m 提升
    client_max_body_size 0;

    location / {
        proxy_pass http://unix:/data/web/lush-discourse/shared/standalone/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

app.yml

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
## 如果您想添加 Lets Encrypt (https),请取消注释以下两行
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"

## 此容器应暴露哪些 TCP/IP 端口?
## 如果您希望 Discourse 与另一个 Web 服务器(如 Apache 或 nginx)共享端口,
## 请参阅 https://meta.discourse.org/t/17247 获取详细信息
#expose:
#- "25654:80" # http
#- "443:443" # https

明白了!技巧是启用 DOCKER_USE_HOSTNAME: true

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.