Опубликовано 20 января 2024 г. 13:43 by Xadmin просмотров: 200

Bash скрипт который поможет настроить Nginx на Ubuntu Server


#!/bin/bash

# Запрос на ввод данных
read -p "Введите название сайта (например, mysite.ru): " site_name
read -p "Введите рабочую директорию (например, /home/www/): " working_dir
read -p "Введите имя пользователя (например, www): " user
read -p "Введите группу пользователя (например, www): " group
read -p "Введите название проекта (например, myproject): " project_name

# Обновляем систему
sudo apt update && sudo apt upgrade -y

# Создаем конфигурационный файл Nginx
echo "server {
    listen 80;
    server_name $site_name;
    access_log /var/log/nginx/access.log;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
    }
}" | sudo tee /etc/nginx/sites-available/$site_name

# Включаем конфигурацию
sudo ln -s /etc/nginx/sites-available/$site_name /etc/nginx/sites-enabled
sudo systemctl restart nginx

# Устанавливаем Certbot
sudo apt-get install certbot python3-certbot-nginx -y

# Получаем SSL сертификат
sudo certbot --nginx -d $site_name --non-interactive --agree-tos --email your_email@example.com

# Настраиваем Gunicorn
echo "[Unit]
Description=Gunicorn daemon for $project_name project
After=network.target

[Service]
ExecStart=/usr/bin/gunicorn --access-logfile /var/log/gunicorn/access.log --error-logfile /var/log/gunicorn/error.log --workers 3 --bind unix:$working_dir$project_name.sock $working_dir/manage:app
WorkingDirectory=$working_dir
User=$user
Group=$group
Restart=always

[Install]
WantedBy=multi-user.target" | sudo tee /etc/systemd/system/gunicorn.service

# Включаем и запускаем службу Gunicorn
sudo systemctl enable gunicorn
sudo systemctl start gunicorn

Прикрепленные файлы:

Share this post