Jump to content
  • 0

Настройка Nextcloud в связке с KeenDNS


Gvadik

Question

Имею статический IP адрес, зарегистрировал доменное имя в KeenDNS (server.keenetic.pro), режим работы выбрал "Прямой доступ".

Для Nextcloud создал доменное имя 4го уровня (web.server.keenetic.pro), в конфиге nextcloud добавил соответствующий доверенный домен. Не могу достучаться до web.server.keenetic.pro. Видимо не правильно выставляю порт в KeenDNS (TCP 80/443) и не верная настройка NGINX. Помогите пожалуйста разобраться.

Настройки NGINX начинаются так:

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/var/run/php/php8.0-fpm.sock;
}

# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
    "" "";
    default "immutable";
}


server {
    listen 80;
    listen [::]:80;
    server_name web.server.keenetic.pro;

    # Prevent nginx HTTP Server Detection
    server_tokens off;

    # Enforce HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443      ssl http2;
   listen [::]:443 ssl http2;
    server_name web.server.keenetic.pro;

    # Path to the root of your installation
    root /var/www/nextcloud;

    # Use Mozilla's guidelines for SSL/TLS settings
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/
    ssl_trusted_certificate /etc/webmin/letsencrypt-ca.pem;
    ssl_certificate     /etc/webmin/letsencrypt-cert.pem;
    ssl_certificate_key /etc/webmin/letsencrypt-key.pem;

    # Prevent nginx HTTP Server Detection
    server_tokens off;

Link to comment
Share on other sites

Recommended Posts

  • 0

Всем привет. Мне, как и автору этого поста, и его читателям довелось помучится с настройкой Nextcloud через Keenetic в режиме Через облако.
В итоге у меня получилось получить полноценный доступ к Nextcloud в том числе через iOS и Android приложения.
Я совершенный обыватель..поэтому на экспертное мнение не претендую, просто поделюсь тем, что получилось и своим пониманием ситуации..
У меня в наборе: Kenetic 4G, компьютер с Ununtu. Nextcloud я поставил из магазина Snap, доступного в Ubuntu. 

Чтобы доступ извне по KeenDNS работал нормально пришлось поковыряться: 
1. С переадресацией портов Nexcloud'ом данных с этих портов и адресов.
2. Работой Nextcloud по  HTTPS (делается элементарно в snap версии). KeenDNS работает по протоколу HTTPS, даже когда вы выбираете протокол HTTP, keenetic принимает данные по протоколу HTTPS а потом пересылает во внутреннюю сеть по протоколу  HTTP. Nextcloud по умолчанию разворачивается с протоколом HTTP, вроде все ок, но у этих двух протоклов по-разному формруются ссылки и пакеты с данными, поэтому например iOS приложение, которое работает только по HTTPS не может пробиться к облаку, и при работе через браузер облако будет работать с костылями.

Теперь по порядку. 
1  На кинетике включаем keenDNS, формируем доменное имя XXXXXX.XXXXXX.keenetic.link. Выбираем протокол HTTP/HTTPS и выбираем устройство на котором работает Nextcloud и порт для переадресации (пока нам нужно только доменное имя, пока неважно какой протокол, когда закончите настройку Nextcloud уже можно будет определиться с портами и протоколами).
Важно! Облачная служба KeenDNS в режиме "Через облако" поддерживает работу только по протоколам HTTP/HTTPS по следующим портам:
HTTP: 80, 81, 280, 591, 777, 5080, 8080, 8090 и 65080
HTTPS: 443, 5083, 5443, 8083, 8443 и 65083
Когда будете настраивать порт у Nextcloud это нужно помнить. 
2 В разделе  Список устройств настроек Keenetic'а фиксируем IP нашего устройства, где развернут Nextcloud
3 Редактируем Config Nextcloud
```
'trusted_donains' =>
array (
0 => '192.168.X.XX',
1 => 'XXXXXX.XXXXXXX.keenetic.link',
),

'trusted_proxies' =>
array (
0 => '192.168.2.0/24',
1 =>'192.168.1.0/24',
2 => '192.168.1.254',
),
'overwritehost => ‘XXXXXX.XXXXXXX.keenetic.link',
```
В доверенных доменах я указал внутренний IP компа с Nextcloud и доменное имя KeenDNS, в доверенных прокси я указал все адреса  из раздела настроек Маршрутизация Keenetic, думаю они у всех одинаковые.
После этого у вас будет доступен Nextcloud через Keenetic по HTTP, если в настройках роутера стоит протокол HTTP и идет перенаправление на правильный порт (snap версия сразу разворачивается на 80 порту), но не будут работать мобильные приложения и куча другого функционала. 

4 Включаем HTTPS, если у вас нет своего сертификата, не проблема. В  Snap версии выпускается свой самоподписанный, это делается одной командой:
```
sudo nextcloud.enable-https lets-encrypt
```

В других версиях я тоже думаю это не сложно делается. После этого у меня заработало все, в том числе в iOS и Android приложениях. 
Обратите внимание, когда будете настраивать Keenetic . Snap версия Nextcloud автоматически после выполнения команды let’s-encrypt меняет порт на 443. 
После этого до настройте раздел Доменное имя в Keenetic, поставив протокол HTTPS, и установив нужный порт. 
Если у кому-то поможет, и увидит что-то лишнее, поправьте.. 

Edited by Gromotik
Link to comment
Share on other sites

  • 0
Posted (edited)

trusted_proxies - лишний блок.

4 пункт тоже лишний. Достаточно добавить в config.php строку

'overwriteprotocol' => 'https'
Edited by Hater
Link to comment
Share on other sites

  • 0

У меня все работало до обновления некстклауда до 30.0.1. Теперь при работе по локальному IP 192.168.1.168 все доступно и работает, а по xxx.xxx.keenetic.pro - 502 Bad Gateway. В какую сторону порыть, подскажите пожалуйста... 

Link to comment
Share on other sites

  • 0

Хм... Сутки промучался, пробовал и так и эдак настройки менять, потом надоело, не трогал день. Попробовал снова зайти - Too many redirects. Сменил в KeenDNS порт на 443 и все взлетело. Что было - непонятно... 

Edited by nuacho
Link to comment
Share on other sites

  • 0

Хм.. Поторопился радоваться. Утром снова 502 Bad Gateway... Что же это может быть? Я что-то уже в ступоре... По локалке все доступно при этом. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...