Sanitize deployment docs

This commit is contained in:
2026-04-03 12:27:25 +03:00
parent 648ca7317a
commit 2f72298a19
2 changed files with 29 additions and 27 deletions

View File

@@ -11,7 +11,7 @@
7. Сконфигурируем будущую компиляцию на размещение готовой версии Python в папку `~/opt/python-3.8.6`
8. Компилируем Python (в том числе будут запущены тесты)
9. Устанавливаем Python 3.8.6
<notification_email>
Контакт для уведомлений: <notification_email>
```
cd ~
@@ -25,7 +25,7 @@ make
make install
```
В результате установлена нужная нам версия python установлена в папку `~/opt/python-3.8.6` (`/home/<username>/opt/python-3.8.6`)
В результате установлена нужная нам версия python установлена в папку `~/<site_root>` (`/home/<hosting_user>/opt/python-3.8.6`)
Теперь нужно назначить эту версию как `system default`, добавив к переменной `$PATH` (временно):
@@ -34,7 +34,7 @@ export PATH=$HOME/opt/python-3.8.6/bin:$PATH
```
------------------------------
_Также можно добавить эту строку в файл `.bashrc` и/или `.bash_profile` в домашней директории `/home/<username>.` Это нужно, чтобы сделать так, чтобы этот python всегда заменял версию которая есть на сервере._
_Также можно добавить эту строку в файл `.bashrc` и/или `.bash_profile` в домашней директории `/home/<hosting_user>`. Это нужно, чтобы сделать так, чтобы этот python всегда заменял версию которая есть на сервере._
-------------------------------
@@ -59,16 +59,16 @@ python ~/tmp/get-pip.py
pip3 install virtualenv
```
Через панель управления хостингом __Domains -> Manage Domains -> Add Hosting to a Domain/Sub-Domain__ создадим поддомен __cadpoint.ru__ (без создания нового пользователя). В нашем домашнем каталоге будет создана папка `cadpoint.ru`. В этой папке будет лежать `passenger_wsgi.py`, также есть папка `public` в которой будут лежать статичные файлы не требующие обработки CGI (media, static и пр.)
Через панель управления хостингом __Domains -> Manage Domains -> Add Hosting to a Domain/Sub-Domain__ создадим поддомен __cadpoint.ru__ (без создания нового пользователя). В нашем домашнем каталоге будет создана папка `~/<site_root>`. В этой папке будет лежать `passenger_wsgi.py`, также есть папка `public` в которой будут лежать статичные файлы не требующие обработки CGI (media, static и пр.)
Теперь создадим виртуальное окружение в папке нашего сайта (`$HOME/cadpoint.ru`):
Теперь создадим виртуальное окружение в папке нашего сайта (`$HOME/<site_root>`):
```
virtualenv -p python3 $HOME/cadpoint.ru/env
virtualenv -p python3 $HOME/<site_root>/env
```
Активируем созданное виртуальное окружение:
```
source $HOME/cadpoint.ru/env/bin/activate
source $HOME/<site_root>/env/bin/activate
```
Проверить, что теперь мы работаем в виртуальном окружении можно дав команды:
@@ -138,7 +138,7 @@ python -c "import django; print(django.get_version())"
Далее нам надо скопировать статические файлы админки Django в папку статических файлов хостинга:
```
cd ~/cadpoint.ru/dicquo
cd ~/<site_root>/dicquo
python manage.py collectstatic
```
@@ -147,10 +147,10 @@ python manage.py collectstatic
Для исполнения Python на хостинге DreamHost используется CGI-механизм Passenger. Чтобы его настроить для нашего проекта в папке сайта `~/cadpoint.ru` нужно разметить файл `passenger_wsgi.py` следующего содержания ([см. документацию DreamHost](https://help.dreamhost.com/hc/en-us/articles/360002341572-Creating-a-Django-project)):
```python
#!/home/<hosting_user>/cadpoint.ru/env/bin/python3
#!/home/<hosting_user>/<site_root>/env/bin/python3
import sys, os
INTERP = "/home/<hosting_user>/cadpoint.ru/env/bin/python3"
INTERP = "/home/<hosting_user>/<site_root>/env/bin/python3"
#INTERP is present twice so that the new python interpreter
#knows the actual executable path
if sys.executable != INTERP:
@@ -187,4 +187,3 @@ touch ~/cadpoint.ru/tmp/restart.txt
## Дополнительно
Стоит включить ssl-сертификат для сайта. В панели управления DreamHost __Domains --> SSL/TLS Certificates__

View File

@@ -3,7 +3,7 @@
## 1: Создание пользователя
Изначально есть только root-доступ. Если мы залогированы под **root**, то следует создать пользователя от имени
которого мы будем осуществлять все действия (позже root-доступ будет закрыт). Создадим пользователя **web**:
которого мы будем осуществлять все действия (позже root-доступ будет закрыт). Создадим пользователя **<ssh_user>**:
```shell
sudo useradd -c 'WEB-user' -m <ssh_user>
@@ -21,7 +21,7 @@ nano /etc/sudoers
и после строки `root ALL=(ALL:ALL) ALL` добавим в него строку:
```editorconfig
web ALL=(ALL:ALL) ALL
<ssh_user> ALL=(ALL:ALL) ALL
```
Сохраняем конфигурационный файл `Ctrl+O` и `Enter`, а выходим из редактора `Ctrl+X`.
@@ -34,7 +34,7 @@ web ALL=(ALL:ALL) ALL
logout
```
Теперь можно залогироваться от имени пользователя **web**.
Теперь можно залогироваться от имени пользователя **<ssh_user>**.
Установим командную оболочку bash для пользователя:
```shell
@@ -64,7 +64,7 @@ Port 2002
```
Так же дописываем в конце следующие две строки в которых и запрещаем ssh-вход
пользователя **root** и разрешаем доступ нашему пользователю **web**:
пользователя **root** и разрешаем доступ нашему пользователю **<ssh_user>**:
```
DenyUsers root
AllowUsers <ssh_user>
@@ -585,10 +585,10 @@ sudo service mysql status
sudo mysql
```
Создаём пользователя `web`, зададим ему пароль и дадим привилегии на все:
Создаём пользователя `<ssh_user>`, зададим ему пароль и дадим привилегии на все:
```mysql
CREATE USER 'web'@'localhost' IDENTIFIED BY '*********************';
GRANT ALL PRIVILEGES ON *.* TO 'web'@'localhost';
CREATE USER '<ssh_user>'@'localhost' IDENTIFIED BY '*********************';
GRANT ALL PRIVILEGES ON *.* TO '<ssh_user>'@'localhost';
```
Создаем базу данных `django_cadpoint` для нашего сайта:
@@ -686,7 +686,7 @@ Accept-Ranges: bytes
сжаты по своей природе и большого результата при сжатии GZIP можно не
ожидать.
Настроем модуль GZIP в NGINX. Для этого открываем на редактирование
Настроим модуль GZIP в NGINX. Для этого открываем на редактирование
конфигурационный файл nginx `/etc/nginx/nginx.conf`:
```shell
sudo nano /etc/nginx/nginx.conf
@@ -873,10 +873,10 @@ zip -9 -r cadpoint.zip public/ rsvo_new/ config/
Копируем архив по ssh на нашу виртуалку (masterhost или nic.ru)
```shell
scp -P 2002 cadpoint.zip <ssh_user>@<server_ip>:~/cadpoint
scp -P 2002 cadpoint.zip <ssh_user>@<server_ip>:~/<project_root>
```
Возвращаемся на нашу виртуалку хостера и разархивируем:
Возвращаемся на нашу виртуалку хостинга и разархивируем:
```shell
cd ~/cadpoint
unzip cadpoint.zip
@@ -1418,8 +1418,10 @@ nano ~/cadpoint/config/cadpoint.conf
где:
* one — имя зоны настроеной в /etc/nginx/nginx.conf (для всех сайтов сервера) в блоке `http {…}`;
* burst — максимальный всплеск активности, можно регулировать до какого значения запросов в секунду может быть всплеск запросов;
* nodelay — незамедлительно, при достижении лимита подключений, выдавать код 503 (Service Unavailable) для этого IP.
* burst — максимальный всплеск активности, можно регулировать до какого значения запросов
* в секунду может быть всплеск запросов;
* nodelay — незамедлительно, при достижении лимита подключений, выдавать код 503
* (Service Unavailable) для этого IP.
Строку `limit_req zone=one burst=5 nodelay;` можно добавить как непосредственно в блок `server {…}`, и тогда будет ограничиваться число запросов ко всем файлам сайта, так и в расположенные в нем блоки `location … {…}`. Целесообразнее ограничить число запросов к `uwsgi_pass`, т.к. он отвечает только за странички сайта (без статики... статика может быть запрощена клиентом довольна, т.к. одна страничка может содержать внутри себя много встроенных картинок, стилей и скриптов).
@@ -1434,6 +1436,7 @@ nano ~/cadpoint/config/cadpoint.conf
uwsgi_read_timeout 1800;
uwsgi_send_timeout 200;
}
}
```
### Баним ботов и подозрительную активность