请求主页 http://10.201.61.8/forum 超时,请求时间已超过 5 秒。

我们总是遇到“哎呀”错误。
是否存在请求超过 5 秒的限制,或其他限制?谢谢!
哎呀
驱动此讨论论坛的软件遇到了意外问题。对此给您带来的不便,我们深表歉意。
有关该错误的详细信息已被记录,并生成了自动通知。我们将对此进行检查。
无需采取进一步操作。但如果该错误持续存在,您可以通过在网站的反馈类别中发布讨论主题,提供包括复现错误步骤在内的更多详细信息。
请求主页 http://10.201.61.8/forum 超时,请求时间已超过 5 秒。

我们总是遇到“哎呀”错误。
是否存在请求超过 5 秒的限制,或其他限制?谢谢!
哎呀
驱动此讨论论坛的软件遇到了意外问题。对此给您带来的不便,我们深表歉意。
有关该错误的详细信息已被记录,并生成了自动通知。我们将对此进行检查。
无需采取进一步操作。但如果该错误持续存在,您可以通过在网站的反馈类别中发布讨论主题,提供包括复现错误步骤在内的更多详细信息。
听起来您正在站点前运行一个自定义代理,导致其超时。
是的,我们在外部使用自定义的 Nginx 代理。
看来您需要在外部修改自定义 Nginx 代理的配置。
有时,如果请求时间未超过 5 秒,我们可以正常访问网页。
所以所有配置应该都能正常工作。
但当请求超过 5 秒时,我们只会看到“Oops”。
我怀疑可能存在针对超过 5 秒请求的限制。
自定义 Nginx 配置如下所示:
server {
listen 9000;
server_name localhost;
root /opt/nginx/portal;
location ~* ^.+\\.(jpg|jpeg|gif|png|bmp)$ {
access_log off;
expires 30d;
break;
}
location / {
index index.html index.htm;
}
location ^~/forum {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' '*';
proxy_pass http://unix:/opt/oca-forum/shared/ocaforum/nginx.http.sock:;
proxy_redirect off;
}
}
app.yml 内容如下:
templates:
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
- "templates/cron.template.yml"
- "templates/web.china.template.yml"
- "templates/web.socketed.template.yml"
params:
db_default_text_search_config: "pg_catalog.english"
db_shared_buffers: "1280MB"
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
UNICORN_WORKERS: 8
DISCOURSE_HOSTNAME: '10.201.61.8:9000'
DOCKER_USE_HOSTNAME: false
DISCOURSE_RELATIVE_URL_ROOT: /forum
DISCOURSE_DEVELOPER_EMAILS: 'jxwoeuxer@gmail.com'
DISCOURSE_SMTP_ADDRESS: gmail.smtp.com
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: jzwoeuxer@gmail.com
DISCOURSE_SMTP_PASSWORD: "WEweoier2x2w3e"
DISCOURSE_SMTP_ENABLE_START_TLS: false # (可选,默认为 true)
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_NOTIFICATION_EMAIL: jxwoeuxer@gmail.com # (发送通知的地址)
DISCOURSE_DB_HOST: 10.201.61.16
DISCOURSE_DB_PORT: 5432
DISCOURSE_DB_NAME: theforum
DISCOURSE_DB_SOCKET: ''
DISCOURSE_DB_USERNAME: postgres
DISCOURSE_DB_PASSWORD: theforum16
volumes:
- volume:
host: /opt/oca-forum/shared/ocaforum
guest: /shared
- volume:
host: /opt/oca-forum/shared/ocaforum/log/var-log
guest: /var/log
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com.cnpmjs.org/discourse/docker_manager.git
run:
- exec: echo "开始自定义命令"
- exec:
cd: $home
cmd:
- mkdir -p public/forum
- cd public/forum && ln -s ../uploads && ln -s ../backups
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: proxy_pass http://discourse;
to: |
rewrite ^/(.*)$ /forum/$1 break;
proxy_pass http://discourse;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: location ~ ^/(svg-sprite/|letter_avatar/|letter_avatar_proxy/|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker) {
to: |
location ~ ^/(svg-sprite/|letter_avatar/|letter_avatar_proxy/|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker) {
rewrite ^/(svg-sprite|letter_avatar|letter_avatar_proxy|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker)/([^/]+):[0-9]+/(.*) /forum/$1/$2/$3 break;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: etag off;
to: |
etag off;
location /forum {
rewrite ^/forum/?(.*)$ /$1;
}
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_your_original_ip_header
global: true
- exec: echo "自定义命令结束"
尝试移除反向代理,让容器直接绑定到 80/443 端口,然后查看问题是否仍然存在。
谢谢!
但我必须使用外部的 Nginx,因为我的 Discourse 已经没有可用端口了。
我已进入 Discourse 容器并运行了
curl http://localhost:3000/forum,但我收到了相同的错误:
---
# # # curl http://localhost:3000/forum
<!DOCTYPE html>
<html>
<head>
<title>Oops - Error 500</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>Oops</h1>
<p>驱动此讨论论坛的软件遇到了意外问题。我们对由此带来的不便表示歉意。</p>
<p>有关该错误的详细信息已被记录,并生成了自动通知。我们将对此进行查看。</p>
<p>无需采取进一步操作。但是,如果错误状态持续存在,您可以通过在网站的反馈类别中发布讨论主题,提供包括复现错误步骤在内的更多详细信息。</p>
</body>
</html>
我使用的是你们的开源 Discourse。
我只需要在外部使用 nginx,并为 URL 路径设置一个子文件夹。
@Falco
也许问题出在数据库上。我发现数据库响应非常慢。我将 db_timeout 设置为 10 后,10 秒后就报错了。也许我应该让数据库运行得更快一些。
问题已解决。5 秒设置是数据库的默认值。我们已将设置更改如下:
DISCOURSE_DB_TIMEOUT: 10000
DISCOURSE_DB_CONNECT_TIMEOUT: 10
此外,我们发现数据库响应非常缓慢,因此已将数据库从 Windows 上的旧实例迁移到 Linux 上的新实例。
同样感谢大家。Discourse 非常棒。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.