Create troubleshooting.md

This commit is contained in:
Andrei Guliaikin 2021-05-11 15:33:12 +02:00 committed by GitHub
parent 67389c2cde
commit 0993973360
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,65 @@
# Решения проблем
Различные проблемы, которые могут возникнуть на новом инстансе и способы их решения.
Многие функции Lemmy зависят от правильной конфигурации reverse proxy. Убедитесь, что ваш, эквивалентен нашему конфигурационному файлу [nginx](https://github.com/LemmyNet/lemmy/blob/main/ansible/templates/nginx.conf).
## Главное
### Журналы
При возникновении проблем с интерфейсом проверьте [браузерную консоль](https://webmasters.stackexchange.com/a/77337) для любых сообщениях об ошибки.
Для журналов сервера запустите `docker-compose logs -f lemmy` в вашей инсталяционной папке. Вы также можете запустить `docker-compose logs -f lemmy lemmy-ui pictrs` для получения журнала от различных сервисов.
Если этого недостаточно, попробуйте изменить строку `RUST_LOG=error` в `docker-compose.yml` на `RUST_LOG=info` или `RUST_LOG=verbose`, затем сделайте `docker-compose restart lemmy`.
### Создание пользователя с правами администратора не работает
Убедитесь, что websocket работает правильно, проверив консоль браузера на наличие ошибок. В nginx для этого важны следующие заголовки:
```
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
```
### Ошибка ограничения скорости, когда на сайт заходят множество пользователей
Убедитесь, что заголовки `X-Real-IP` и `X-Forwarded-For` отправляются в Lemmy посредством reverse proxy. В противном случае он будет считать все действия в соответствии с ограничением скорости IP-адреса обратного прокси-сервера. В nginx это должно выглядеть так:
```
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
```
## Федерация
### Другие инстансы не могут получать локальные объекты (сообщество, пост и т.д.)
Ваш reverse proxy (например nginx) должен пересылать запросы с заголовком `Accept: application/activity+json` в бэкэнд. Это обрабатывается следующими строками:
```
set $proxpass "http://0.0.0.0:{{ lemmy_ui_port }}";
if ($http_accept = "application/activity+json") {
set $proxpass "http://0.0.0.0:{{ lemmy_port }}";
}
if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
set $proxpass "http://0.0.0.0:{{ lemmy_port }}";
}
proxy_pass $proxpass;
```
Вы можете проверить, что он работает правильно, выполнив следующие команды, все они должны возвращать действительный JSON:
```
curl -H "Accept: application/activity+json" https://your-instance.com/u/some-local-user
curl -H "Accept: application/activity+json" https://your-instance.com/c/some-local-community
curl -H "Accept: application/activity+json" https://your-instance.com/post/123 # the id of a local post
curl -H "Accept: application/activity+json" https://your-instance.com/comment/123 # the id of a local comment
```
### Получение удаленных объектов работает, но публикации/комментирование в удаленных сообществах не успешны.
Проверьте это [федерация разрешена в обоих случаях](../federation/administration.md#instance-allowlist-and-blocklist).
Также убедитесь, что на вашем сервере установлено точное время. Действия подписываются меткой времени и будут отброшены, если она отключена более чем на 10 секунд.