mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
puppet: Read resolver from /etc/resolv.conf.
04cf68b45e
make nginx responsible for downloading (and caching) files from S3. As noted in that commit, nginx implements its own non-blocking DNS resolver, since the base syscall is blocking, so requires an explicit nameserver configuration. That commit used 127.0.0.53, which is provided by systemd-resolved, as the resolver. However, that service may not always be enabled and running, and may in fact not even be installed (e.g. on Docker). Switch to parsing `/etc/resolv.conf` and using the first-provided nameserver. In many deployments, this will still be `127.0.0.53`, but for others it will provide a working DNS server which is external to the host. In the event that a server is misconfigured and has no resolvers in `/etc/resolv.conf`, it will error out: ```console Error: Evaluation Error: Error while evaluating a Function Call, No nameservers found in /etc/resolv.conf! Configure one by setting application_server.nameserver in /etc/zulip/zulip.conf (file: /home/zulip/deployments/current/puppet/zulip/manifests/app_frontend_base.pp, line: 76, column: 70) on node example.zulipdev.org ``` (cherry picked from commitbd217ad31b
)
This commit is contained in:
@@ -824,6 +824,14 @@ immutable, this serves only as a potential additional limit on the
|
||||
size of the contents on disk; `s3_disk_cache_size` is expected to be
|
||||
the primary control for cache sizing.
|
||||
|
||||
#### `nameserver`
|
||||
|
||||
When the [S3 storage backend][s3-backend] is in use, downloads from S3 are
|
||||
proxied from nginx, whose configuration requires an explicit value of a DNS
|
||||
nameserver to resolve the S3 server's hostname. Zulip defaults to using the
|
||||
resolver found in `/etc/resolv.conf`; this setting overrides any value found
|
||||
there.
|
||||
|
||||
[s3-backend]: upload-backends.md
|
||||
|
||||
#### `uwsgi_listen_backlog_limit`
|
||||
|
@@ -85,6 +85,18 @@ You may also wish to increase the cache sizes if the S3 storage (or
|
||||
S3-compatible equivalent) is not closely located to your Zulip server,
|
||||
as cache misses will be more expensive.
|
||||
|
||||
## nginx DNS nameserver configuration
|
||||
|
||||
The S3 cache described above is maintained by nginx. nginx's configuration
|
||||
requires an explicitly-set DNS nameserver to resolve the hostname of the S3
|
||||
servers; Zulip defaults this value to the first nameserver found in
|
||||
`/etc/resolv.conf`, but this resolver can be [adjusted in
|
||||
`/etc/zulip/zulip.conf`][s3-resolver] if needed. If you adjust this value, you
|
||||
will need to run `/home/zulip/deployments/current/scripts/zulip-puppet-apply` to
|
||||
update the nginx configuration for the new value.
|
||||
|
||||
[s3-resolver]: deployment.md#nameserver
|
||||
|
||||
## S3 bucket policy
|
||||
|
||||
The best way to do the S3 integration with Amazon is to create a new IAM user
|
||||
|
Reference in New Issue
Block a user