Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Настройка директив в nginx  (Прочитано 13777 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sherba800

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Настройка директив в nginx
« : 13 Февраля 2023, 03:31:29 »
Хочу на своей убунте поднять некстклауд вдобавок к сайту, который крутится на Nginx-сервере, чтобы заходить можно в него было вот так: www.domain.ru/nextcloud. Сайт и некстклауд собраны в докере и работают отлично, сайт видно извне и по ssl, я не могу разобраться как настроить nginx чтобы он проксировал запросы и на сайт и на некстклауд.

Вот такая у меня конфигруация сейчас, которая работает, но за исключением последней директивы:

location = /nextcloud {
    proxy_pass http://localhost:8080;
  }


Я не пойму как сделать так, чтобы видно было некстклауд через www.domain.ru/nextcloud. Может кто знает как реализовать подобный функционал?

server {
  listen 80;
  server_name xxx.xxx.xxx.xxx;
  return 301 https://domain.ru$request_uri;
}

server {
  listen       80;
  listen       443 ssl;
  server_name  domain.ru www.domain.ru;

  ssl_certificate     /etc/letsencrypt/live/...;
  ssl_certificate_key /etc/letsencrypt/live/...;
  ssl_trusted_certificate /etc/letsencrypt/live/...;

  location / {
    proxy_pass http://localhost:3000;
  }

  location = /nextcloud {
    proxy_pass http://localhost:8080;
  }
}

Если директивы поменять местами (под слешем некстклауд открыть), то будет виден некстклауд по домену, а сайт нет.
« Последнее редактирование: 13 Февраля 2023, 03:33:29 от sherba800 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Настройка директив в nginx
« Ответ #1 : 13 Февраля 2023, 10:29:49 »
server {
    server_name
        cloud.rootdir.org
        cloud.darkdragon.lan
        ;

    error_log syslog error;
    access_log off;

    listen 80;
    return 301 https://$host$request_uri;
}

server {
    server_name
        cloud.rootdir.org
        ;

    listen 443 ssl http2;
    ssl_certificate "/etc/ssl/cloud.rootdir.org.crt";
    ssl_certificate_key "/etc/ssl/private/cloud.rootdir.org.key";

    error_log syslog error;
    access_log off;

    location / {
        proxy_pass http://cloud.darkdragon.lan/;

        include extras/proxy_pass;
        include extras/fix-http-destination;

        client_max_body_size 512M;

        proxy_read_timeout 60s;

        rewrite_log on;
        error_log /var/log/nginx/cloud.rootdir.org.log notice;
    }
}

Пользователь добавил сообщение 13 Февраля 2023, 10:30:18:
Если директивы поменять местами (под слешем некстклауд открыть), то будет виден некстклауд по домену, а сайт нет.
Естественно. Облако на отдельный домен вешайте.

Пользователь добавил сообщение 13 Февраля 2023, 10:30:47:
server_name xxx.xxx.xxx.xxx;
IP - невалидное имя сервера.

Пользователь добавил сообщение 13 Февраля 2023, 10:32:01:
  listen       80;
  listen       443 ssl;
Уже указали где слушать 80 порт. Проблем недостаточно, решили ещё nginx заставить в угадайку играть?
« Последнее редактирование: 13 Февраля 2023, 10:32:01 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.045 секунд. Запросов: 22.