![시스템 소켓 활성화가 첫 번째 요청을 처리할 준비가 되지 않은 이유](https://linux55.com/image/203540/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%86%8C%EC%BC%93%20%ED%99%9C%EC%84%B1%ED%99%94%EA%B0%80%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EC%9A%94%EC%B2%AD%EC%9D%84%20%EC%B2%98%EB%A6%AC%ED%95%A0%20%EC%A4%80%EB%B9%84%EA%B0%80%20%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EC%9D%B4%EC%9C%A0.png)
Python 가상 환경에서 실행되고 uWSGI 및 Nginx와 함께 사용되는 Flask 응용 프로그램이 있습니다.
애플리케이션 시작을 관리하기 위해 systemd 소켓 활성화를 사용하고 싶습니다.
관련 구성은 다음과 같습니다.
uwsgi-flask.service
[Unit]
Description=a uWSGI app
After=syslog.target
[Service]
Type=notify
User=www-data
Group=www-data
WorkingDirectory=/home/www-data/my-app
ExecStart=/bin/bash -c "source venv/bin/activate && uwsgi \
--ini flask-uwsgi.ini \
--socket /dev/shm/flask.sock"
Restart=always
KillSignal=SIGQUIT
StandardError=syslog
NotifyAccess=all
uwsgi-flask.socket
[Unit]
Description=Socket for uWSGI app
[Socket]
ListenStream=/dev/shm/flask.sock
SocketUser=www-data
SocketGroup=www-data
SocketMode=0660
[Install]
WantedBy=sockets.target
nginx.conf
server {
listen 80;
server_name localhost;
location / {
root /home/www-data/my-app/public;
try_files $uri @flask;
}
location @flask {
uwsgi_pass unix:/dev/shm/flask.sock;
include uwsgi_params;
}
}
systemd 소켓을 시작하고 요청을 하면:
systemctl start uwsgi-flask.socket
첫 번째 요청은 항상 다음과 같은 504 응답을 받습니다.
504 Gateway Time-out
하지만 두 번째 이후 요청은 정상입니다. 이는 첫 번째 요청이 이루어졌을 때 유닉스 소켓이 준비되지 않은 것과 같습니다.
이상한 점은 내가 시작하면uwsgi-flask.service직접적으로는 문제가 없습니다.
systemctl start uwsgi-flask.service
위 문제의 원인은 무엇일까요?