nginx をプロキシサーバーとして使用すると非常に遅くなりますが、Docker 内で nginx を使用すると非常に高速になります。なぜでしょうか?
app.yml
templates:
#- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/sshd.template.yml"
- "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、以下の 2 行のコメントを外してください
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
- "templates/web.socketed.template.yml"
expose:
#- "8080:80" # http
#- "444:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## db_shared_buffers を総メモリの最大 25% に設定します。
## ブートストラップが検出した RAM に基づいて自動的に設定されますが、上書きすることも可能です
db_shared_buffers: "780MB"
## ソートパフォーマンスを向上させることができますが、接続ごとにメモリ使用量が増加します
# db_work_mem: "512MB"
## このコンテナで使用する Git リビジョンはどれですか?(デフォルト: tests-passed)
version: stable
env:
# 数据库配置
DISCOURSE_DB_USERNAME: ****
DISCOURSE_DB_PASSWORD: ***
DISCOURSE_DB_HOST: ***
DISCOURSE_DB_NAME: ***
DISCOURSE_DB_PORT: ***
DISCOURSE_DB_BACKUP_PORT: ***
LANG: zh_CN.UTF-8
DISCOURSE_DEFAULT_LOCALE: zh_CN
## 同時にサポートされる Web リクエスト数は?メモリと CPU コア数に依存します。
## ブートストラップが検出した CPU に基づいて自動的に設定されますが、上書きすることも可能です
UNICORN_WORKERS: 2
nginx 設定
server {
listen 80; listen [::]:80;
server_name my.web.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2; listen [::]:443 ssl http2;
server_name minetest.cosoc.org;
ssl_certificate /var/discourse/shared/standalone/ssl/my.web.org.cer;
ssl_certificate_key /var/discourse/shared/standalone/ssl/my.web.org.key;
ssl_session_tickets off;
http2_idle_timeout 5m; # デフォルトの 3m から 5m に引き上げ
location / {
proxy_pass http://unix:/var/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;
}
なぜ nginx はこんなに遅く動作するのでしょうか???nginx を使用しない場合は高速なのに!