Pull to refresh

Comments 15

Тут бы не плохо вторую статью сделать после слов "для просмотра аниме" как на этом всём живет просмотр (если имелось виду просмотр видео). Сколько вы тюнинговали всё это чтобы просмотр не тормозил и хотябы работал в +50 одновременных потоков

Я просто взял приложение, которое у меня было. Вопрос оптимизации изучу, если что, дополню статью.

Я все понимаю, но зачем в конце 2022 года писать инструкцию про установку приложения на ASP.NET Core 3.1 (вы его в тексте ошибочно называете ASP.NET), если .NET Core 3.1 перестали поддерживать 13 декабря?

Server=localhost;Database=animesitedb;User Id=sa;Password=<MyStrongPassword>;

Не надо так делать, так делать не надо никогда. Приложение должно работать под выделенным пользователем с минимально возможными правами, а совсем не под sa, который может сделать с вашим сервером практически что угодно.

Я все понимаю, но зачем в конце 2022 года писать инструкцию про установку приложения на ASP.NET Core 3.1 (вы его в тексте ошибочно называете ASP.NET)

Опечатки сейчас исправлю, спасибо. А про версию я отдельно выделил, что на шаге с установкой .NET-SDK устанавливайте ту версию, которая вам нужна.

Приложение должно работать под выделенным пользователем с минимально возможными правами

Я писал про развертывание и не стал сильно отвлекаться на настройку СУБД.

Возможно тут, конечно, из-за аниме совсем другие требования для хостинга (в первую очередь из-за объема материалов). Но на том же рег ру, есть обычный asp net core хостинг, куда без проблем можно опубликовать свой сайт без дополнительных установок чего-либо. И плюс он поддерживает установку напрямую из студии. Причем ценник вроде с 200+р начинается.

О, и правда отменили все такие тарифы. Хорошо хоть не убрали то, что куплено и можно вроде проапгрейдить

А поместить это в контейнер и получить плюшки в виде CI\CD?

CI/CD можно и без контейнеров получить. Поверх systemd вполне можно реализовать практически любой паттерн развёртывания.

Зря вы ставите Apache в качестве реверс-прокси для Kestrel. Это попросту глупо: Apache гораздо хуже держит медленные соединения, чем голый Kestrel из-за разницы в архитектуре. В принципе, никому не нужный сайт по просмотру аниме можно так на голом Kestrel и оставить, пусть это и не рекомендуется Microsoft. А если уж закрывать его, то не Апачем, а nginx.


Второе замечание по тому же серверу: раз уж вы поставили полноценный веб-сервер перед сервером приложений — почему бы статические файлы не раздавать им же?


Третье замечание: раз уж вы запускаете сервер используя systemd, а не докер — не помешает установить пакет Microsoft.Extensions.Hosting.Systemd и добавить в Program.cs строку .UseSystemd(), что позволит запускать сервис как Type=notify.


А ещё, если вы вдруг захотите использовать активацию по сокету — Kestrel в неё умеет. Настраивается через .ConfigureKestrel(opt => opt.UseSystemd())


Кстати, оба вызова UseSystemd проверяют окружение и ничего не делают если запуск был не через systemd.

Так, я смотрю автор исправил таки apache на nginx, отлично.


Теперь ещё замечания:


  1. вместо 5000 порта связь nginx — kestrel можно настроить на unix-сокет, это вроде как работает быстрее;


  2. в самом приложении, при наличии доступа к исходникам, лучше бы добавить строку app.UseForwardedHeaders() в подходящее место пайплайна.


ssh "134.0.118.152" -l root

Не проще ли "ssh root@134.0.118.152"

sudo apt-get update

Достаточно sudo apt update. По этому обычно видно неопытного пользователя.

Зачем брать Ubuntu 20.04 в конце 2022 при наличии 22.04

/var/netcore/

sudo nano /etc/apache2/conf-enabled/netcore.conf

За что вы так не любите использовать стандартные пути? Ну можно же свой софт ставить в /opt, а не размазывать по файловой системе. Когда вы хотите создать vhost на apache2 в Ubuntu - есть тоже стандартное место - /etc/apache2/sites-available/. А потом можно включать и выключать сайт через a2ensite/a2dissite.

Не проще ли "ssh root@134.0.118.152"

На вкус и цвет. (Edit: попробовал, удобнее.)

Достаточно sudo apt update. По этому обычно видно неопытного пользователя.

Пользовался Unix впервые. Команды сейчас исправлю, спасибо.

За что вы так не любите использовать стандартные пути? 

Я про них не знал. Изучу вопрос и отредактирую статью.

А потом можно включать и выключать сайт через a2ensite/a2dissite.

Это очень удобно, попробую сделать так.

Ещё замечание: вполне возможно, что приложению при запуске захочется сделать миграции БД или загрузить оттуда какие-нибудь данные, а потому оно не запустится если запускать его при неработающей СУБД.


Это "лечится" через Wants=mssql-server и After=mssql-server в юнит-файле.

В феврале 2022 не было возможности установить MS SQL на Ubuntu, которая развернута на сервере с процессором ARM. Не знаю, как эта ситуация в декабре, так как тогда же перешел на PostgreSQL, которая на Ubuntu на ARM ставилась.

Sign up to leave a comment.

Articles