1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/masuit-Masuit.MyBlogs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Masuit.MyBlogs

Проект личного блога с высокой производительностью и безопасностью, возможно, это самый высокопроизводительный веб-проект, который я написал. Всего 3 МБ кода! В настоящее время ежедневно обрабатывается от 80 до 600 тысяч запросов, одновременно в сети находится от 60 до 600 активных пользователей, накоплено уже несколько сотен тысяч записей данных, база данных, Redis и основное приложение сайта работают одновременно на одном компьютере с 4 ядрами и 8 ГБ памяти, браузерные страницы отвечают за секунды, средняя загрузка процессора около 10%, использование памяти около 400 МБ.

Скриншот диспетчера задач

Изображение

Изображение

Демонстрационные сайты

Тестовый сайт 1: https://masuit.org, тестовый сайт 2: https://masuit.com, тестовый сайт 3: https://ldqk.xyz

Лицензия Размер кода Языки программирования

Обратите внимание:

Как только вы начнёте использовать этот открытый исходный код или будете ссылаться на этот проект или включать его код в свою компанию из-за нарушения трудового законодательства (включая, но не ограничиваясь незаконным увольнением, сверхурочной работой, наймом детского труда и т. д.) и проиграете в любом судебном процессе, автор проекта имеет право требовать плату за использование этого проекта (в размере от двух до пятикратной суммы регистрационного сбора компании). Либо напрямую запретить использование любого исходного кода, содержащего этот проект! Любая компания или организация, которая хочет использовать эту библиотеку, должна связаться с автором для получения коммерческой лицензии! Другие предприятия или частные лица могут свободно использовать её без ограничений. 996 — это эксплуатация людей, а также их уничтожение. Восемь часов работы позволяют вам иметь время для самосовершенствования, что в будущем даст вам конкурентное преимущество. Против 996, каждый несёт ответственность!

Star тренд

Поддержка запросов переднего плана

В настоящее время код передней страницы сайта довольно беспорядочный, он повсюду, все, кто хочет критиковать, могут критиковать, и те, кто заинтересован в помощи в разработке общего внешнего вида передней страницы, могут внести свой вклад в код, добро пожаловать в Pull Request! 😂

Основной технический стек проекта

.NET8
ASP.NET Core MVC
Blazor
Entity Framework Core
Masuit.Tools
Masuit.LuceneEFCore.SearchEngine
Hangfire

Среда разработки

Операционная система: Windows 11 23h2
IDE: Visual Studio 2022 v17.8
База данных: PostgreSQL 16.x
Redis: redis-server-windows 7.x
Время выполнения: обязательно .NET 8

Текущая среда выполнения

Операционная система: Windows Server 2019
База данных: PostgreSQL 16.x
Redis: redis-server-windows 7.x
Время выполнения: .NET 8
Серверная конфигурация: 4 ядра + 8 ГБ + 6 Гбит/с
Пропускная способность: в среднем 600 тыс. запросов в день, пропускная способность 1 ТБ в день
Пожалуйста, не используйте Alibaba Cloud, Baidu Cloud и другие активные сверхдешёвые серверы для запуска этой программы, иначе она выйдет из строя!
Как определить, является ли сервер сверхдешёвым: дайте своему серверу оценку, если оценка близка к оценке процессора, опубликованной в Интернете, то это не сверхдешёвый сервер, формула расчёта: общая оценка / количество ядер для сравнения, поскольку это виртуальная машина, если сравнивать только одноядерную оценку, это не имеет смысла

Требования к инфраструктуре

Минимальная конфигурация Рекомендуемая конфигурация Роскошная конфигурация Максимальная конфигурация
Процессор 1 ядро 2 ядра 2 ядра 4 ядра
Память 1 ГБ 2 ГБ 4 ГБ 8 ГБ
Пропускная способность 1 Мбит/с 1 Мбит/с 5 Мбит/с Более 1000 Мбит/с
База данных PostgreSQL 9 PostgreSQL 14 PostgreSQL 15+ PostgreSQL 16+
Компонент кэширования Redis 3.2+ Redis 5.0+ Redis 5.0+ Redis 7.0+
Примечание Просто для удовольствия Несколько человек одновременно посещают Несколько сотен человек одновременно посещают, ежедневное количество запросов менее 600 тыс. Ежедневное количество запросов более 600 тыс.

Основные функции

Мониторинг производительности сервера

Можно напрямую отслеживать состояние работы сервера в режиме реального времени через Интернет, включая процессор, пропускную способность сети, коэффициент использования диска, память и т.д., включая процентную статистику и графики, можно записывать состояние здоровья сервера за последний день, отправлять данные через WebSocket, поддерживать только Windows и устанавливать последние обновления.

Управление статьями

  • Включает проверку статей, объединение статей, добавление, удаление, изменение и классификацию статей; управление темами;
  • Проверка статей: после того, как пользователь отправит статью на переднем конце, она перейдёт в состояние проверки, и будет отображаться на странице списка статей после прохождения проверки.
  • Объединение статей: когда пользователь редактирует статью на передней странице, будет создан запрос на объединение, и после объединения администратором на задней странице изменения пользователя вступят в силу немедленно. Пользователь может объединить, отредактировать и объединить или отклонить объединение. Если отклонено, пользователь получит уведомление по электронной почте.
  • Операции со статьями: можно изменять, добавлять, размещать, удалять (приостанавливать), восстанавливать, удалять навсегда, запрещать комментарии и т.д. Статьи поддерживают переменные шаблона.
  • Классификация управления: управление классификацией статей, связь между статьями и классификациями: один ко многим.
  • Управление темами: управление темами статей, отношения между темами статей: многие ко многим.
  • Быстрый обмен: панель быстрого обмена на главной странице.

Комментарии и управление сообщениями

... Формы и защита от злонамеренной отправки:

  • Форма использует AntiForgeryToken для предотвращения злонамеренных отправлений.

Проверка источника запроса с помощью ip2region и MaxMind:

  • Используется библиотека адресов MaxMind для проверки источника запросов.

Проект развёртывания

В качестве примера используется система Windows, а для Linux предлагается «самостоятельное развёртывание».

1. Установка инфраструктуры:

  1. Установить среду выполнения .NET 6: https://dotnet.microsoft.com/zh-cn/download.

  2. Установить MySQL: зелёная версия MySQL 8 [https://masuit.org/1567] или PostgreSQL: зелёная версия PostgreSQL 14 [https://masuit.org/2160].

  3. Установить Redis: зелёная версия Redis для Windows [https://masuit.org/130].

2. Создание веб-приложения

Существует два способа компиляции исходного кода:

  • Способ 1: компиляция исходного кода. Необходимо клонировать проекты Masuit.Tools и Masuit.LuceneEFCore.SearchEngine и разместить их в том же каталоге, что и текущий проект, чтобы обеспечить нормальную компиляцию. В противном случае можно удалить эти проекты и установить их через NuGet.

  • Способ 2: загрузка готовых двоичных файлов. Перейдите на страницу Release [https://github.com/ldqk/Masuit.MyBlogs/releases] и загрузите последнюю версию сжатого пакета для распаковки.

3. Восстановление скрипта базы данных

Создайте базу данных с любым именем, например, myblogs. Затем перейдите на страницу Release [https://github.com/ldqk/Masuit.MyBlogs/releases] или [https://github.com/ldqk/Masuit.MyBlogs/tree/master/database/mysql] для загрузки последнего файла базы данных и восстановите его в новой базе данных. Если у вас нет нужного типа файла восстановления, вы можете сначала восстановить его в MySQL или PostgreSQL, а затем использовать Full Convert [https://masuit.org/2163] для преобразования в нужный тип базы данных.

4. Изменение конфигурационного файла

Необходимо настроить следующие параметры. Остальные настройки являются опциональными и не требуют настройки.

Также BaiduAK участвует в шифровании базы данных, и если у вас его нет, вы можете подать заявку на платформе Baidu Maps Open Platform. Это бесплатно.

Если вы используете CDN, необходимо настроить опцию TrueClientIPHeader на истинный IP-запрос переадресации заголовка, такой как CF-Connecting-IP для Cloudflare.

Если Redis не находится на локальном компьютере, вам нужно настроить его в разделе Redis конфигурационного файла, установив значение «Redis» в формате «127.0.0.1:6379,allowadmin=true». Если конфигурация неверна, будет использоваться значение по умолчанию «127.0.0.1:6379,allowadmin=true,abortConnect=false».

Для других настроек обратитесь к комментариям в appsettings.json.

5. Запуск веб-сайта

После настройки среды и конфигурационных файлов вы можете запустить веб-сайт, используя команду dotnet Masuit.MyBlogs.Core.dll или дважды щёлкнув на Masuit.MyBlogs.Core.exe. Вы также можете использовать nssm для запуска в качестве службы Windows или попробовать развернуть на Linux.

Другие способы развёртывания:

  • IIS: при развёртывании необходимо установить идентификатор пула приложений на LocalSystem, иначе невозможно контролировать серверное оборудование. Также необходимо установить среду выполнения .NET Core Hosting, и изменить режим пула программ IIS на неуправляемый код.

Docker/Linux: самостоятельное развёртывание.

Платные услуги по развёртыванию:

Пожалуйста, свяжитесь с admin@masuit.com для получения дополнительной информации.

Управление бэкендом

Доступ к панели управления осуществляется по адресу https://127.0.0.1:5001/dashboard.

Начальные учётные данные:

  • Имя пользователя: masuit.
  • Пароль: 123abc@#$.

Если пароль неверен, можно сбросить его в режиме отладки, войдя в раздел «Управление пользователями» на панели администратора.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/masuit-Masuit.MyBlogs.git
git@api.gitlife.ru:oschina-mirror/masuit-Masuit.MyBlogs.git
oschina-mirror
masuit-Masuit.MyBlogs
masuit-Masuit.MyBlogs
master