#docker #nginx #raspberry-pi #reverse-proxy #nextcloud
#docker #nginx #raspberry-pi #обратный прокси #nextcloud
Вопрос:
Я использую веб-сервер Nginx на своем Raspberry Pi 4. Я пытаюсь настроить обратный прокси-сервер на поддомене для контейнера Nextcloud Docker. Однако я получаю ошибку 502 Bad Gateway при попытке посетить этот контейнер в своем браузере. Я позаботился о том, чтобы сгенерировать SSL-сертификат для поддомена, который я пытаюсь использовать на сервере Nextcloud.
Вот как выглядит серверный блок для моего поддомена:
server {
listen 443 ssl;
server_name subdomain.domain.tld;
ssl_certificate /pathtokey/subdomain.domain.tld/fullchain.pem;
ssl_certificate_key /pathtokey/subdomain.domain.tld/privkey;
location / {
proxy_pass https://127.0.0.1:9000/;
proxy_ssl_server_name on;
}
}
И вот как выглядит мой файл docker-compose.yml для Nextcloud:
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: linuxserver/mariadb
# command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<rootPassword>
- MYSQL_PASSWORD=<mysqlPassword>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:fpm
ports:
- 127.0.0.1:9000:9000
links:
- db
volumes:
- /mnt/hdd/nextcloud:/var/www/html
restart: always
После изменения .файл yml, я обязательно запускаю docker-compose up -d.
После изменения файла nginx.conf я запускаю sudo systemctl и перезапускаю nginx. Я также запустил sudo nginx -t.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Я не уверен, где моя ошибка в этих конфигурациях. Я был бы признателен за любые советы о том, как это исправить.
Ответ №1:
Вы используете nextcloud:fpm
image, который является только экземпляром php fpm без веб-сервера.
Ваша конфигурация прокси-сервера nginx в порядке, но она не будет работать, потому что для этого вам понадобится nginx fastcgi_proxy
для прокси-запроса к серверному экземпляру php.
Вот простая иллюстрация:
nginx (fastcgi) <-> php-fpm (nextcloud) <-> db
1-е решение:
Возможно, обратитесь к официальному документу nextcloud о том, как настроить nginx, или просто скопируйте конфигурацию config: nginx
2-е решение:
nextcloud:apache
Вместо этого используйте изображение. Этот образ уже включал веб-сервер apache, и вы можете получить к нему прямой доступ, не требуя другого экземпляра nginx.
Комментарии:
1. Спасибо, я смог устранить проблему и заставить nextcloud работать должным образом, используя образ apache.