Изменения документа Установка SQL REST Proxy сервиса
Редактировал(а) PROSTO:СКУД 2026/09/16 13:37
От версии 11.1
отредактировано PROSTO:СКУД
на 2026/07/22 08:30
на 2026/07/22 08:30
Изменить комментарий:
К данной версии нет комментариев
К версии 12.1
отредактировано PROSTO:СКУД
на 2026/07/22 08:43
на 2026/07/22 08:43
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -173,6 +173,11 @@ 173 173 174 174 И переместите его в каталог /etc/sql-proxy/certs 175 175 176 +Далее запустим скрипт `generate_certs.sh` и назначим права на созданные файлы сертификатов 177 +># sudo chown root:sqlproxy /etc/sql-proxy/certs/key.pem /etc/sql-proxy/certs/cert.pem 178 +># sudo chmod 640 /etc/sql-proxy/certs/key.pem 179 +># sudo chmod 644 /etc/sql-proxy/certs/cert.pem 180 + 176 176 === 3.4 Создание виртуального окружения=== 177 177 178 178 ># sudo python3 -m venv /opt/sql-proxy/venv ... ... @@ -195,4 +195,109 @@ 195 195 ># sudo /opt/sql-proxy/venv/bin/python -c "import fastapi, uvicorn, sqlalchemy, psycopg2, pymssql, pymysql; print('OK')" 196 196 197 197 198 - 203 +3.6 Настройка конфигурации 204 + 205 +В проекте есть `.env.example`. Для промышленного сервера лучше хранить конфигурацию в `/etc/sql-proxy/sql-proxy.env`, а не в каталоге приложения. 206 + 207 +Создайте файл: 208 + 209 +># sudo nano /etc/sql-proxy/sql-proxy.env 210 + 211 +И перенестите в него содержимое из примера (`.env.example`) либо заполните свое: 212 +># API Key для аутентификации запросов 213 +># API_KEY=skud_proxy_19e1d5c545b55bdb3459281bd3a1c06a29c467c5645b3ceb748bb2589a5e0d46 214 + 215 +>## Ограничения 216 +># MAX_ROWS_LIMIT=10000 217 +># DEFAULT_ROWS_LIMIT=1000 218 + 219 +>## Пул соединений 220 +># POOL_SIZE=10 221 +># MAX_OVERFLOW=20 222 +># POOL_TIMEOUT=30 223 +># POOL_RECYCLE=3600 224 +># POOL_PRE_PING=true 225 + 226 +>## Таймауты 227 +># QUERY_TIMEOUT=300 228 +># CONNECTION_TIMEOUT=30 229 + 230 +>## SSL/TLS 231 +># SSL_ENABLED=true 232 +># SSL_CERTFILE=/app/certs/cert.pem 233 +># SSL_KEYFILE=/app/certs/key.pem 234 + 235 +>## Сервис 236 +># SERVICE_PORT=8443 237 +># PROMETHEUS_PORT=9090 238 + 239 +Далее назначим права: 240 + 241 +># sudo chown root:sqlproxy /etc/sql-proxy/sql-proxy.env 242 +># sudo chmod 640 /etc/sql-proxy/sql-proxy.env 243 + 244 +3.6 Настройка запуска через systemd 245 + 246 +Создадим unit: 247 + 248 +># sudo nano /etc/systemd/system/sql-proxy.service 249 + 250 +Содержимое файла: 251 + 252 + 253 +># [Unit] 254 +># Description=P-SKUD SQL REST Proxy Service 255 +># After=network-online.target 256 +># Wants=network-online.target 257 + 258 +[Service] 259 +Type=simple 260 +User=sqlproxy 261 +Group=sqlproxy 262 + 263 +WorkingDirectory=/opt/sql-proxy 264 +EnvironmentFile=/etc/sql-proxy/sql-proxy.env 265 +Environment=PYTHONUNBUFFERED=1 266 + 267 +ExecStart=/opt/sql-proxy/venv/bin/uvicorn app.main:app --host **IP_ВАШЕГО_СЕРВЕРА** --port 8443 --ssl-keyfile /etc/sql-proxy/certs/key.pem --ssl-certfile /etc/sql-proxy/certs/cert.pem 268 + 269 +Restart=on-failure 270 +RestartSec=5 271 +TimeoutStartSec=30 272 +TimeoutStopSec=30 273 + 274 +NoNewPrivileges=true 275 +PrivateTmp=true 276 +ProtectHome=true 277 +ProtectSystem=strict 278 +ProtectKernelTunables=true 279 +ProtectKernelModules=true 280 +ProtectControlGroups=true 281 +RestrictSUIDSGID=true 282 +LockPersonality=true 283 +UMask=0027 284 + 285 +ReadWritePaths=/var/lib/sql-proxy /var/log/sql-proxy 286 +ReadOnlyPaths=/etc/sql-proxy /opt/sql-proxy 287 + 288 +StandardOutput=journal 289 +StandardError=journal 290 + 291 +[Install] 292 +WantedBy=multi-user.target 293 +``` 294 + 295 +Включить службу: 296 + 297 +```bash 298 +sudo systemctl daemon-reload 299 +sudo systemctl enable --now sql-proxy 300 +``` 301 + 302 +Проверить: 303 + 304 +```bash 305 +sudo systemctl status sql-proxy 306 + 307 + 308 +