Ololord.js: различия между версиями

Материал из Колчевики
Перейти к навигации Перейти к поиску
(Новая страница: «'''[https://github.com/ololoepepe/ololord.js Ololord.js]''' — Кривой движок для параши запиленный Андрюшка|Андрюш...»)
 
м
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
'''[https://github.com/ololoepepe/ololord.js Ololord.js]''' — Кривой движок для параши запиленный [[Андрюшка|Андрюшкой]], на котором работали [[Тумбач]] и [[Оллчан#Оллчан времен андрюшки|Allchan.su]]. Под завязку нафарширован тонной ненужных функций, большая часть из которых работала на половину, а некоторые из этой половины не работали вовсе. Заброшен после продажи [[Оллчан]]а Аллкалику. Несмотря на это у движка почти нулевой отклик, а то что работало, работало как надо и даже лучше.
+
'''[https://github.com/ololoepepe/ololord.js Ololord.js]''' — Кривой движок для параши запиленный [[Андрюшка|Андрюшкой]], на котором работали [[Тумбач]] и [[Оллчан#Оллчан времен андрюшки|Allchan.su]]. Под завязку нафарширован тонной ненужных функций, большая часть из которых работала на половину, а некоторые из этой половины и не работали вовсе. Заброшен после продажи [[Оллчан]]а Аллкалику. Несмотря на это у движка почти нулевой отклик, а то что работало, работало как надо и даже лучше. Считается приемником [[Ololord (C++)|Ololord]]'а.
  
 
==История==
 
==История==
Строка 5: Строка 5:
  
 
== Особенности ==
 
== Особенности ==
На момент создания движок был не иначе как чудом инженерной мысли. Да, кривой, да стремненький, но в нем было столько революционных фич, которые том же [[Vichan]] появились далеко не сразу: Теневые баны, багтреккер-разделы, интернациональные доски, версия под мобилки, карта ответов, уведомления о новых ответах (один из первых движков где это появилось), работа сайта без перезагрузки страниц, адекватный API из коробки. Ололорд в свое время был как ёбаный швейцарский нож, к которому прикрутили шуруповерт и табуретку. В противовес тому, что большинство из этого работала очень не очень, можно сказать что в то время большинство движков обо всем этом только мечтали.
+
На момент создания движок был не иначе как чудом инженерной мысли. Да, кривой, да стремненький, но в нем было столько революционных фич, которые том же [[Vichan]] появились далеко не сразу: Теневые баны, багтреккер-разделы, интернациональные доски, версия под мобилки, карта ответов, уведомления о новых ответах (один из первых движков где это появилось), удаление своих постов, работа сайта без перезагрузки страниц, адекватный API из коробки. Ололорд в свое время был как ёбаный швейцарский нож, к которому прикрутили шуруповерт и табуретку. В противовес тому, что большинство из этого работала очень не очень, можно сказать что в то время большинство движков обо всем этом только мечтали.
 
===Плюсы===
 
===Плюсы===
 
*Быстрый бэкэнд (все кэшируется, скорость зависит только от производительности вашего SSD);
 
*Быстрый бэкэнд (все кэшируется, скорость зависит только от производительности вашего SSD);
Строка 419: Строка 419:
 
[[Оллчан]]<br>
 
[[Оллчан]]<br>
 
[[Ololord (C++)]]
 
[[Ololord (C++)]]
 +
{{nav|Движки}}

Текущая версия на 16:53, 14 июня 2025

Ololord.js — Кривой движок для параши запиленный Андрюшкой, на котором работали Тумбач и Allchan.su. Под завязку нафарширован тонной ненужных функций, большая часть из которых работала на половину, а некоторые из этой половины и не работали вовсе. Заброшен после продажи Оллчана Аллкалику. Несмотря на это у движка почти нулевой отклик, а то что работало, работало как надо и даже лучше. Считается приемником Ololord'а.

История[править]

В самом начале (начало 2016 г.) движок вполне исправно работал, но уже спустя год начал разваливаться, однако Андрюшка не спешил исправлять это и, по некоторым данным, залазил в код Ололорда дай бог раз в неделю. К моменту продажи Оллчана в 2022 г., ситуация стала немного лучше, однако глобально не сильно изменилась: Андрюша раз в неделю фиксил баги заменял одни баги на другие, добавлял новые фичи нагромождал код не рабочим мусором и обновлял библиотеки. В репозитории гитхаба находится очень старая и устаревшая версия от 17 сентября 2016 года, которая уже начинала разваливаться. Более свежих версий нет, Андрюшка не публиковал исходники своих параш.

Особенности[править]

На момент создания движок был не иначе как чудом инженерной мысли. Да, кривой, да стремненький, но в нем было столько революционных фич, которые том же Vichan появились далеко не сразу: Теневые баны, багтреккер-разделы, интернациональные доски, версия под мобилки, карта ответов, уведомления о новых ответах (один из первых движков где это появилось), удаление своих постов, работа сайта без перезагрузки страниц, адекватный API из коробки. Ололорд в свое время был как ёбаный швейцарский нож, к которому прикрутили шуруповерт и табуретку. В противовес тому, что большинство из этого работала очень не очень, можно сказать что в то время большинство движков обо всем этом только мечтали.

Плюсы[править]

  • Быстрый бэкэнд (все кэшируется, скорость зависит только от производительности вашего SSD);
  • Многофункциональный пользовательский интерфейс (автоматическое скрытие постов на основе правил, встроенный проигрыватель, инструменты JS-only drawing и многое другое);
  • Удобный и современный UI, легко настраиваемый с помощью настроек и пользовательского CSS/JS;
  • Мобильная версия пользовательского интерфейса (автоматическое определение мобильных устройств);
  • Удобное управление контентом и пользователями через веб-интерфейс;
  • Идеальная масштабируемость (чем лучше процессор, тем выше нагрузки, которые он может обрабатывать);
  • Встроенная базовая защита от DDoS (настраиваемая);
  • Полный Web API для пользовательских клиентских приложений;
  • Удобство в локализации;
  • Подробная документация.

Минусы[править]

  • Большинство новых функций работает через задницу;
  • Проблема с нововведениями (Сложно что-то добавить чтобы что-то не поломать);
  • Из-за большого функционала жрет слишком много ресурсов;
  • Сильно транжирит трафик.

Установка[править]

Инструкция взята из андрюшкиного репозитория движка и переведена на русский:

Чтобы начать использовать движок ololord.js, скачайте копию из репозитория, распакуйте ее и следуйте инструкциям, перечисленным в следующих разделах:

1. Требования[править]

Аппаратное обеспечение

  • Рекомендуется процессор 2 ГГц. Хотя фактических ограничений нет, обработка файлов может быть раздражающе медленной, если у вас медленный процессор.
  • 1-1,5 ГБ свободной оперативной памяти. Технически, 200-300 МБ должно быть достаточно, но из-за странного бага Node.js или Express потребление памяти иногда увеличивается до 700-800 МБ на 0,5-1 секунду, а затем снижается до нормального значения.

ОС

  • Linux x32/x64. Любая UNIX-подобная система подойдет (теоретически). Протестировано на Centos 7.1 x64.

Node.js

  • Node.js 5.0.0+. 4.2.x может подойти, но это не проверялось. Настоятельно рекомендуется загрузить Node.js с сайта Node.js, поскольку версия в репозитории вашей ОС, скорее всего, устарела (или что-то в этом роде).0.x

Важно: убедитесь, что Node.js находится в вашем PATH (в UNIX-подобной системе введите: , в Windows запустите ).which nodenode.exe

Библиотеки и инструменты

  • Redis Сервер. Конфигурация по умолчанию должна быть ОК. Официальный сайт.
  • Elasticsearch Сервер. Конфигурация по умолчанию должна быть ОК. Официальный сайт. Загрузки доступны здесь. Примечание: вам также нужно будет установить JRE/JDK. Вот официальное руководство по установке и запуску Elasticsearch в Linux.
  • sqlite3 (включая библиотеки dev). Официальный сайт.
  • Cairo (для пакета). Пожалуйста, обратитесь к npmjs. canvas
  • ImageMagick (для создания миниатюр). Официальный сайт.
  • CImg и (для генерации хэша изображения с помощью пакета). Пожалуйста, обратитесь к npmjs. Подробности см. в разделах CImg и pHash. pHash ImageMagick phash-image
  • file (должен поддерживать MIME-тип). Исходный код можно получить [здесь https://github.com/file/file]. Могут быть некоторые проблемы с файлами, пожалуйста, обратитесь к II.5. 3rdparty related issues.video/webm mp3
  • ffmpeg (с поддержкой , , и ). Пожалуйста, обратитесь к этой статье, чтобы узнать, как собрать ffmpeg со всеми необходимыми форматами. Еще одна.mp3 ogg webm png

Важно: убедитесь, что все библиотеки и инструменты находятся в PATH.

Возможные проблемы

  • CImg
Пакет CImg обычно называется . Он может отсутствовать в некоторых дистрибутивах. В этом случае загрузите его с официального сайта (нажмите кнопку «Стандартный пакет») и установите вручную. Вам следует поместить файл и каталог в ваш dir.cimg-devCImg.hplugins/usr/include
Распакуйте загруженный архив и введите:
sudo cp /path/to/unzipped-cimg/CImg.h /usr/include
sudo cp -r /path/to/unzipped-cimg/plugins /usr/include
  • pHash
Пакет pHash обычно называется . Он может отсутствовать в некоторых дистрибутивах. В этом случае загрузите его из официального сайта (нажмите ссылку "pHash 0.9.6 - Linux") и соберите его вручную.libphash0-dev
Распакуйте загруженный архив и введите:
./configure --prefix=/usr --enable-video-hash=no --enable-audio-hash=no
make
sudo make install

Примечание: если сборка не удалась (это происходит в некоторых дистрибутивах), откройте файл, найдите строку ./Makefile

SUBDIRS = src bindings examples

и замените ее на

SUBDIRS = src bindings

(удалите цель). Затем запустите снова. examples make

2. Пакеты NPM[править]

Вам необходимо установить следующие пакеты:

  • big-integer ^1.6.7
  • canvas ^1.3.1
  • commander ^2.9.0
  • cookie-parser ^1.4.0
  • cute-localize ^0.1.8
  • ddos-express ^0.1.1
  • deep-equal ^1.0.1
  • dot ^1.0.3
  • du ^0.1.0
  • elasticsearch ^11.0.1
  • escape-html ^1.0.3
  • express ^4.13.3
  • express-cluster 0.0.4
  • fast-csv ^0.6.0
  • fluent-ffmpeg ^2.0.1
  • highlight.js ^8.9.1
  • html-to-text ^2.0.0
  • imagemagick ^0.1.3
  • ioredis ^1.15.1
  • ip-address ^5.0.2
  • jdenticon ^1.3.2
  • log4js ^0.6.29
  • mathjax-node ^0.5.1
  • merge ^1.2.0
  • mkpath ^1.0.0
  • moment ^2.10.6
  • multiparty ^4.1.2
  • musicmetadata ^2.0.2
  • node-captcha ^0.2.2
  • phash-image ^3.5.0
  • promisify-node ^0.2.1
  • q-io ^1.13.1
  • random-js ^1.0.8
  • read ^1.0.7
  • sockjs ^0.3.17
  • sqlite3 ^3.1.1
  • uuid ^2.0.1
  • xml2js ^0.4.15
  • xregexp ^3.0.0

Чтобы установить необходимые пакеты NPM, введите следующее:

npm install

Примечание: не забудьте сначала установить все зависимости.

Примечание 2: см. актуальный список пакетов в файле package.json.

3. Геолокация[править]

ololord.js использует базу данных IPInfoDB для геолокации. Вам необходимо самостоятельно загрузить соответствующий файл DB (в формате CSV) и преобразовать его в базу данных SQLite 3 с помощью скрипта tools/geolocation.js. Файл .csv можно загрузить здесь (требуется регистрация). Если вы используете IPv6, вам следует загрузить версию IPv6 базы данных IPInfoDB, в противном случае следует использовать версию IPv4.

После загрузки файла выполните:

./tools/geolocation.js <path/to/file.csv>

Примечание: операция может занять некоторое время (до 10–20 минут в зависимости от вашего оборудования).

Примечание 2: геолокация выполняется очень быстро (~5 миллисекунд на запрос).

4. Базовая Конфигурация[править]

Для корректной работы приложения необходимо добавить некоторые базовые настройки. Для начала создайте файл конфигурации: config.json. Затем вставьте следующее содержимое:

{
    "server": {
        "port": 80,
        "youtubeApiKey": "Your YouTube API key here"
    },
    "site": {
        "protocol": "http",
        "domain": "localhost:80"
    },
    "board": {
        "captchaEnabled": true,
        "launchDate": "2015-02-12T21:00:00",
        "int": {
            "showWhois": true
        }
    },
    "captcha": {
        "google-recaptcha": {
            "privateKey": "Your Google reCAPTCHA private key here",
            "publicKey": "Your Google reCAPTCHA public key here"
        },
        "google-recaptcha-v1": {
            "privateKey": "Your Google reCAPTCHA v1 private key here",
            "publicKey": "Your Google reCAPTCHA v1 public key here"
        },
        "codecha": {
            "privateKey": "Your Codecha private key here",
            "publicKey": "Your Codecha public key here"
        }
    }
}

Примечание: Это лишь малая часть параметров конфигурации, необходимых для корректной работы приложения. Другие параметры конфигурации описаны здесь: II.1. Configuration.

Параметры конфигурации[править]

  • server.port
Порт, на котором сервер будет прослушивать соединения. Обычно 80, но значение может отличаться, если трафик проходит через какой-либо HTTP-сервер, например nginx.
  • server.youtubeApiKey

Ключ API YouTube, используемый для извлечения информации о видео YouTube в сообщениях и для правильной разметки соответствующих ссылок (добавление всплывающей подсказки с названием видео и миниатюрой, а также создание расширяемого встроенного проигрывателя YouTube). Документация API YouTube.

  • site.protocol
Предпочтительный протокол (http или https). Используется для ссылок в сгенерированном канале RSS и для предоставления ссылок на файлы внешним поисковым системам изображений (например, TinEye).
  • site.domain
Используется для той же цели, что и site.protocol.
  • board.captchaEnabled
Включает или отключает капчу.
  • board.launchDate

Дата запуска вашей imageboard. Используется для расчета скорости публикации. Необходимо указать в формате ISO: YYYY-MM-DDThh:mm:ss. Пример: 2015-02-12T21:00:00.

  • board.int.showWhois
Показать страну (с соответствующим флагом страны) и город пользователя на доске /int/ (международная). Вы можете включить эту опцию на любой доске (но обычно не следует).
Примечание: информация о геолокации сохраняется для каждого сообщения, независимо от того, включена ли опция showWhois, но она не отображается на страницах, если эта опция не включена.
  • Закрытые и открытые ключи капчи
Вы должны указать закрытые и открытые ключи капчи для каждой службы капчи. Закрытые ключи используются только на сервере, а открытые ключи отображаются на страницах сайта.
Links:
Примечание: По умолчанию Codecha — единственная доступная капча для доски /pr/ (Программирование). Вам следует предоставить ключи сервиса Codecha или включить другие движки капчи для этой доски (см. II.1. Конфигурация).

Запуск[править]

Запуск и выход[править]

Запуск ololord.js довольно прост:

./app.js

Обычно при запуске будет выводиться некоторый текст, а также будет отображаться командная строка:

[17662] Using config file: "/home/username/dev/js/projects/ololord.js/config.json"...
Generating JSON cache, please, wait...
Generating HTML cache, please, wait...
Generating RSS, please, wait...
Spawning workers, please, wait...
[17677] Using config file: "/home/username/dev/js/projects/ololord.js/config.json"...
[17677] Initializing...
[17677] Listening on port 8080...
Type 'help' for commands
ololord.js>

Чтобы выйти из приложения, вы можете либо ввести:

quit

либо:

q

или нажать Ctrl+C (последнее не рекомендуется).

Генерация кэша[править]

При первом запуске ololord.js вам нужно будет передать параметр --regenerate для генерации кэша HTML/JSON.

./app.js --regenerate

или

./app.js -r

Указание файла конфигурации[править]

По умолчанию используется файл конфигурации ./config.json. Вы можете указать любой другой файл конфигурации с помощью параметров командной строки -c или --config-file. Путь может быть относительным:

./app.js -c ./custom-config.json

или абсолютным:

./app.js --config-file /etc/config/ololord.js/custom-config.json

Если указанный файл не существует, будет использована конфигурация по умолчанию (в этом случае приложение может быть даже недоступно в браузере).

См. также: 4. Базовая конфигурация и II.1. Configuration.

Аккаунт суперпользователя[править]

Чтобы иметь возможность управлять уровнями доступа пользователей, запретами и выполнять другие административные действия (редактировать/удалять сообщения и т. д.), вам сначала нужно создать учетную запись суперпользователя. Запустите ololord.js и введите:

add-superuser

Вам будет предложено ввести пароль или хэш пароля SHA-1 (распознается автоматически), а затем список IP-адресов. Эти адреса используются для предотвращения удаления ваших сообщений администратором или модератором (случайно или намеренно).

Например:

ololord.js> add-superuser
Enter password: 
 *************

Enter superuser IP list (separate by spaces): 127.0.0.1 192.168.0.1
OK

Когда учетная запись суперпользователя создана, вы можете зайти на любую страницу с помощью браузера, нажать кнопку «Войти» Кнопка входа (расположена в левом верхнем углу страницы) и ввести свой пароль. После этого вы сможете удалять/редактировать сообщения, закрывать темы, видеть IP-адреса пользователей и т. д.

Примечание: пароли хранятся в базе данных в виде хешей SHA-1.

Чтобы удалить суперпользователя, введите:

remove-superuser

и введите пароль или хеш SHA-1 пароля (распознается автоматически).

Конфигурация nginx[править]

Это пример nginx конфигурации.

user root;                            # Вы можете изменить это на «www-data» или на какого-либо другого пользователя.
worker_processes 1;                   # Количество рабочих процессов. 1 должно быть достаточно.
access_log /var/log/nginx/access.log; # Расположение журнала доступа.
error_log /var/log/nginx/error.log;   # Расположение журнала ошибок.

events {
    worker_connections 2048;          # Максимальное количество соединений, которые может обслуживать рабочий процесс.
}

http {
    include      /etc/nginx/mime.types;    # Стандартные типы MIME. НЕ изменять.
    default_type application/octet-stream; # MIME-тип по умолчанию. НЕ изменять.

    # Раскомментируйте следующие строки, чтобы включить SSL (HTTPS).
    # ssl_session_cache   shared:SSL:10m; # Это
    # ssl_session_timeout 5m;             # оптимальные настройки.
    # ssl_prefer_server_ciphers on;       # Вы можете их погуглить
    # ssl_stapling on;                    # если хотите
    # resolver 8.8.8.8;                   # их изменить.

    # Раскомментируйте следующие строки, чтобы включить кэширование в памяти. Вам также придется создать RAMDisk.
    # proxy_cache_path /path/to/ramdisk levels=1:2 keys_zone=ram:10m max_size=1g inactive=3d use_temp_path=off; # Объявление местоположения кэша
    # map $request_uri $nocache { # Отключение кэширования часто изменяемого контента и вызовов API.
    #     default 0;
    #     ~*\.(html|json|rss) 1;
    #     ~*/[a-z0-9_]+/src/.* 1;
    #     ~*/[a-z0-9_]+/? 1;
    #     ~*/[a-z0-9_]+/index\.html 1;
    #     ~*/[a-z0-9_]+/[0-9]+\.(html|json) 1;
    #     /api/* 1;
    #     /misc/* 1;
    #     /action* 1;
    # }

    limit_req_zone $binary_remote_addr zone=req_perip:10m rate=10r/s;       # Не более 10 запросов в секунду для 1 IP.
    limit_req_zone $binary_remote_addr zone=req_perserver:10m rate=1000r/s; # Не более 1000 запросов в секунду для всего сервера.

    limit_conn_zone $binary_remote_addr zone=conn_perip:10m;
    limit_conn_zone $binary_remote_addr zone=conn_perserver:10m;

    upstream backend {                # Использование «балансировки нагрузки» для обеспечения резервного сервера в случае сбоя приложения ololord.js.
        server 127.0.0.1:8080;        # Приложение ololord.js должно прослушивать этот порт.
        server 127.0.0.1:8200 backup; # Если приложение ololord.js недоступно, используется резервный сервер (см. ниже).

        keepalive 1024;               # Поддерживайте до 1024 открытых подключений к ololord.js.
    }

    server {                            # Главный сервер
        listen       80 default_server; # Прослушивайте соединения на стандартном HTTP-порту 80.
        # listen       443 ssl;         # Раскомментируйте эту строку, чтобы включить SSL (HTTPS).
        server_name  yoursite.com www.yoursite.com;

        # Раскомментируйте следующие строки, чтобы включить SSL (HTTPS).
        # ssl_certificate     /etc/nginx/cert/yoursite.crt;             # Укажите путь к вашему SSL-сертификату.
        # ssl_certificate_key /etc/nginx/cert/yoursite.unencrypted.key; # Укажите путь к незашифрованному ключу вашего SSL-сертификата.
        # ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;                    # SSLv2 и SSLv3 не являются безопасными. Вы можете добавлять их на свой страх и риск.
        # ssl_ciphers         "HIGH:!RC4:!aNULL:!MD5:!kEDH";            # Ну, если хотите, можете поискать это в Google.

        limit_req zone=req_perip burst=20;       # Применяем указанные выше ограничения по IP-адресам.
        limit_req zone=req_perserver burst=2000; # Применение глобальных ограничений сервера, заявленных выше.

        limit_conn conn_perip 10;       # Не более 10 одновременных подключений на один IP.
        limit_conn conn_perserver 1000; # Не более 1000 одновременных подключений на весь сервер.No more than 1000 simultaneous connections for the whole server.

        client_max_body_size 50m; # Ограничение размера тела запроса.
        client_body_timeout 2m;   # Ограничение времени передачи тела запроса.
        client_header_timeout 5s; # Ограничение времени передачи заголовков запроса.

        keepalive_timeout 360s;   # Ограничение времени «keep-alive» соединения до 6 минут.

        # Раскомментируйте следующие строки только в том случае, если соответствующие файлы существуют.
        # include /etc/nginx/blocked_ips.conf;
        # include /etc/nginx/block_tor.conf;
        # include /etc/nginx/maintainance.conf;

        location /ws/ {              # Запросы, связанные с WebSocket, передаются непосредственно на бэкэнд.
            if ($maintainanceMode) { # Если установлен флаг обслуживания сервера,
                return 503;          # то вернуть страницу ошибки 503.
            }

            proxy_pass http://backend;                 # Передача запросов на бэкэнд.
            proxy_http_version 1.1;                    # Установка версии HTTP на 1.1 для использования «keep-alive» соединений.
            proxy_set_header Upgrade $http_upgrade;    # Заголовок, связанный с WebSocket.
            proxy_set_header Connection "upgrade";     # Заголовок, связанный с WebSocket.
            proxy_set_header X-Client-IP $remote_addr; # Если этот заголовок не установлен, IP-адреса всегда будут 127.0.0.1.
        }

        location / {                 # Основное место.
            if ($maintainanceMode) { # Если установлен флаг обслуживания сервера,
                 return 503;         # то вернуть страницу ошибки 503.
            }

            proxy_set_header X-Client-IP $remote_addr; # Если этот заголовок не установлен, IP-адреса всегда будут 127.0.0.1.

            # Uncomment the following lines to enable in-memory caching.
            # proxy_cache ram;
            # proxy_cache_valid 200 1h;
            # proxy_no_cache $nocache;
            # proxy_pass http://127.0.0.1:80;

            # Закомментируйте следующие строки, чтобы включить кэширование в памяти.
            root /path/to/ololord.js/public;           # Вам необходимо изменить путь к каталогу «ololord.js/public».
            try_files $uri $uri/index.html @ololord;   # Попытка обслужить статические файлы. Если не найдено, то запрос передается в специальное местоположение.
        }

        location @ololord {                            # Это местоположение передает запрос непосредственно на бэкэнд.
            proxy_http_version 1.1;                    # Установка версии HTTP на 1.1 для использования «keep-alive» соединений.
            proxy_set_header Connection "";
            proxy_set_header X-Client-IP $remote_addr; # Если этот заголовок не установлен, IP-адреса всегда будут 127.0.0.1.
            proxy_pass http://backend;                 # Передаю запрос.
        }

        error_page 503 /503.html;                  # Пользовательская страница ошибки 503. Создайте каталог "ololord.js/public/error" и поместите туда файл "503.html".

        location = /503.html {                     # Специальное место для обслуживания пользовательской страницы ошибки 503.
            root /path/to/ololord.js/public/error; # Вам необходимо изменить путь к каталогу «ololord.js/public/error».
        }
    }

    server {                   # Резервный сервер.
        listen 127.0.0.1:8200; # Локальное прослушивание порта 8200.

        location / {           # Всегда возвращает пользовательскую страницу ошибки 503, если основной сервер не работает.
            return 503;
        }

        error_page 503 /503.html; # См. описание объявления пользовательской страницы ошибок выше.

        location = /503.html {
            root /ololord.js/public/error;
        }
    }

    # Раскомментируйте следующие строки, чтобы включить кэширование в памяти.
    # server {                 # Специальный прокси-сервер для включения кэширования в памяти.
    #     listen 127.0.0.1:80; # Локальное прослушивание порта 8200.

    #     location / {                                 # Основное местоположение кэширующего прокси-сервера.
    #         internal;                                # Местоположение доступно только внутри компании.
    #         root /path/to/ololord.js/public;         # Вам необходимо изменить путь к каталогу «ololord.js/public».
    #         try_files $uri $uri/index.html @ololord; # Попытка обслужить статические файлы. Если не найдено, то запрос передается в специальное местоположение.
    #     }

    #      location @ololord {                           # Это местоположение передает запрос непосредственно на бэкэнд.
    #         proxy_http_version 1.1;                    # Установка версии HTTP на 1.1 для использования «keep-alive» соединений.
    #         proxy_set_header Connection "";
    #         proxy_set_header X-Client-IP $remote_addr; # Если этот заголовок не установлен, IP-адреса всегда будут 127.0.0.1.
    #         proxy_pass http://backend;                 # Передаю запрос.
    #      }
    # }
}

Включение SSL (HTTPS)[править]

Вы можете перейти на https://www.startssl.com/, чтобы получить бесплатный сертификат SSL. Вам нужно будет подтвердить свой сайт, а затем запросить сертификат. Не забудьте раскомментировать соответствующие строки в файле конфигурации.
Незашифрованный ключ сертификата можно создать из зашифрованного с помощью следующей команды:
openssl rsa -in /path/to/encrypted/key -out /path/to/new/unencrypted/key
Подробнее о настройке nginx можно прачитать здесь — I.7. nginx configuration

См. также[править]

Тумбач
Оллчан
Ololord (C++)




Wakaba mark1x1.png
Тир движков
SSS
Instant 0chanМишаба
SS
MakabaVichan
S
TinyIBChieftainDoushioKotoba
A
FoolFuuka
B
1chan engineBakabaTinyboardNorthboardХанабира
C
Ololord.jsOlolordErlachFrikichanMonabaNeboardOrphereus
D
ExabaKusaba XLinabaOchoba
E
WakabaPhalcabaFutabaFutallabyДвижок freeport7Зептоборда
F
KusabaАтта