Конфигурация сервера Unicorn под Linux
Конфигурация сервера Unicorn под Linux

Unicorn Что это такое? 1. для Rack приложение разработано HTTP server 2. Он разработан с использованием расширенных возможностей Unix. 3. для Обслуживание клиентов с малой задержкой и высокой пропускной способностью

характеристика: 1. для Rack, Unix, Разработан для быстрого клиента и простой отладки. 2. Полностью совместим Ruby 1.8 и 1.9。 3. процессуправлять:Unicorn получити Перезапустите задачу, которая прекратила свое существование из-за ошибки приложения.,不需要自己управлять多个процессипорт。Unicorn Может генерировать и управлять любым количеством задач процесса. 4. Балансировка нагрузки полностью выполняется ядром операционной системы (Unix). Запросы не будут накапливаться во время выполнения загруженных задач. 5. Нет необходимости заботиться о том, является ли приложение потокобезопасным, рабочие Запуск существующего имеет собственное независимое адресное пространство, и одновременно доступен только один клиентский сервис. 6. Поддержать всех Rack приложение. 7. использовать USR1 信号来固定重复打开应用程序的所有日志文件。Unicorn Вы также можете постепенно определить, что несколько строк журналов запроса помещаются в один и тот же файл. 8. nginx бинарное обновление без потери соединения. вы можете обновить Единорог, все ваше приложение, библиотеки или даже Ruby редактор без потери соединения с клиентом. 9. существовать fork Процесс Если есть особые потребности, вы можете использовать before_fork и after_fork . Если «preload_app» для false Когда вы не можете использовать. 10. Можетиспользовать copy-on-wirte-friendly Управление памятью для сохранения контента (установив “preload_app" для true )。 11. Может контролировать несколько интерфейсов, в том числе: UNIX розетки, каждая worker process Его также можно передать во время простой отладки. after_fork Хук привязан к частному порту. 12. Configurationuse прост и удобен в использовании. Ruby DSL。

LinuxВнизUnicornсерверКонфигурация установки:

gem install unicorn

Создайте файл конфигурации единорога для проекта.

new_sxcoalts2.0/config/unicorn.rb Содержание следующее: app_path = "/work/new_sxcoalts2.0" #Путь к программе прослушайте 3000 # номер порта worker_processes 2 #номер ядра процессора pid "#{app_path}/tmp/pids/unicorn.pid" stderr_path "#{app_path}/log/unicorn.log" stdout_path "#{app_path}/log/unicorn.log" рельсы_env = 'производство'

запустить: Откройте корневой каталог проекта cd /work/new_sxcoalts2.0/ unicorn_rails -c /work/new_sxcoalts2.0/config/unicorn.rb Параметр -c означает, что выполняет содержимое последующего файла конфигурации.

Остановить службу: Фоновая служба: процесс уничтожения Служба командной строки: ctrl + c

Создайте автозагрузку и закройте службу: Создайте папку конфигурации проекта: /etc/unicorn Существуют Добавьте все необходимые конфигурации проекта в этот каталог (можно разместить несколько) Например: проект1.conf содержаниедля RAILS_ROOT=/work/project1 RAILS_ENV=production

Написание запуска сценария единорога существование/etc/init.d/Вниз建立unicorn_init содержаниедля #!/бин/ш # # скрипт init.d для одной или нескольких установок единорога. Ожидается как минимум один .conf # файл в /etc/unicorn # # Изменено jay@gooby.org http://github.com/jaygooby # на основе http://gist.github.com/308216 автора http://github.com/mguterl # ## Пример файла /etc/unicorn/new_sxcoalts_2.0.conf ## ## RAILS_ENV=производство ## RAILS_ROOT=/var/apps/www/my_app/current # # Это настраивает мастер-единорог для вашего приложения в /var/apps/www/my_app/current, работающем в # производственный режим. Он прочитает config/unicorn.rb для дальнейшей настройки. # # Вы должны убедиться, что в каждом файле config/unicorn.rb установлены разные порты или сокеты, если # вы одновременно используете более одного мастера. # # Если вы вызовете этот скрипт без каких-либо параметров конфигурации, он попытается запустить # команда init для всех ваших конфигураций единорога, перечисленных в /etc/unicorn/*.conf # # /etc/init.d/unicorn start # запускает всех единорогов # # Если вы укажете конкретную конфигурацию, она будет работать только с ней # # /etc/init.d/unicorn start /etc/unicorn/new_sxcoalts_2.0.conf

set -e

sig () { test -s "$PID" && kill -$1 `cat "$PID"` }

oldsig () { test -s "$OLD_PID" && kill -$1 `cat "$OLD_PID"` }

cmd () {

case $1 in start) sig 0 && echo >&2 "Already running" && exit 0 echo "Starting" $CMD ;; stop) sig QUIT && echo "Stopping" && exit 0 echo >&2 "Not running" ;; force-stop) sig TERM && echo "Forcing a stop" && exit 0 echo >&2 "Not running" ;; restart|reload) sig USR2 && sleep 5 && oldsig QUIT && echo "Killing old master" `cat $OLD_PID` && exit 0 echo >&2 "Couldn't reload, starting '$CMD' instead" $CMD ;; upgrade) sig USR2 && echo Upgraded && exit 0 echo >&2 "Couldn't upgrade, starting '$CMD' instead" $CMD ;; rotate) sig USR1 && echo rotated logs OK && exit 0 echo >&2 "Couldn't rotate logs" && exit 1 ;; *) echo >&2 "Usage: $0 " exit 1 ;; esac }

setup () {

echo -n "$RAILS_ROOT: " cd $RAILS_ROOT || exit 1 export PID=$RAILS_ROOT/tmp/pids/unicorn.pid export OLD_PID="$PID.oldbin"

CMD="unicorn_rails -c config/unicorn.rb -E $RAILS_ENV -D" }

start_stop () {

# either run the start/stop/reload/etc command for every config under /etc/unicorn # or just do it for a specific one

# $1 contains the start/stop/etc command # $2 if it exists, should be the specific config we want to act on if [ $2 ]; then . $2 setup cmd $1 else for CONFIG in /etc/unicorn/*.conf; do # import the variables . $CONFIG setup

# run the start/stop/etc command cmd $1 done fi }

ARGS="$1 $2" start_stop $ARGS

Выполнить команду: /etc/init.d/unicorn_init старт/стоп/перезапуск

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose