gunicorn 관련 질문드립니다
gunicorn --bind 0:8000 config.wsgi:application
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
이렇게 두 개 모두 실행되는데에는 문제가 없었는데
문제는
여기에서 에러가 나는데요
sudo systemctl status mysite.service
이상한 것은
:~$ 위치에서
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
이렇게 하면
[ERROR] Exception in worker process
하면서
ModuleNotFoundError : No module named 'config.wsgi'
이렇게 나오고
:~/projects/mysite/$ 위치에서 하면
Using Worker : sync 이러면서 에러가 안 뜨더라고요
이게 관련이 있을까요?
sudo systemctl status mysite.service
이거 실행했을 때 에러 메세지는
Process: 75445 ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn \ (code=exited, status=3)
Main PID: 75445 (code=exited, status=3)
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: return _bootstrap._gcd_import(name[level:], package, level)
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: ModuleNotFoundError: No module named '\\'
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: [2022-02-21 16:11:37 +0900] [75457] [INFO] Worker exiting (pid: 75457)
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75445]: [2022-02-21 16:11:37 +0900] [75445] [INFO] Shutting down: Master
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75445]: [2022-02-21 16:11:37 +0900] [75445] [INFO] Reason: Worker failed to boot.
Feb 21 16:11:37 ip-172-26-7-9 systemd[1]: mysite.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Feb 21 16:11:37 ip-172-26-7-9 systemd[1]: mysite.service: Failed with result 'exit-code'.
이렇게 뜨고 있고요
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
이렇게 했을 때 소켓 파일이 자동생성된다는 거 같던데
저는
(mysite) ubuntu@ip-172-26-7-9:/tmp$ ls
snap.lxd
systemd-private-df87767629654c92a2e571100a5bf0dd-systemd-logind.service-qrIQ0g
systemd-private-df87767629654c92a2e571100a5bf0dd-systemd-resolved.service-Bw6SIf
systemd-private-df87767629654c92a2e571100a5bf0dd-systemd-timesyncd.service-4gSmbi
이렇게만 존재합니다
위 에러 내용에서
Feb 21 16:11:37 ip-172-26-7-9 gunicorn[75457]: ModuleNotFoundError: No module named '\\'
이 부분이 의미하는게 경로인거지 싶어서요
항상 답변 감사드립니다
이 단계만 넘어가고 하면 거의 다 될 것 같은데 어렵네요
정리해보자면
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
이걸로는 들어가지는데
서비스로 동작시켜서 status 보면 에러가 뜨네요
서비스파일은
이렇게 같게 작성하였습니다
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/projects/mysite
EnvironmentFile=/home/ubuntu/venvs/mysite.env
ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn \
--workers 2 \
--bind unix:/tmp/gunicorn.sock \
config.wsgi:application
[Install]
WantedBy=multi-user.target
테스트 해보던 중에
(mysite) ubuntu@ip-172-26-7-9:~/projects/mysite$ gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
[2022-02-21 16:34:24 +0900] [75706] [INFO] Starting gunicorn 20.1.0
[2022-02-21 16:34:24 +0900] [75706] [INFO] Listening at: unix:/tmp/gunicorn.sock (75706)
[2022-02-21 16:34:24 +0900] [75706] [INFO] Using worker: sync
[2022-02-21 16:34:24 +0900] [75708] [INFO] Booting worker with pid: 75708
WARNING 2022-02-21 16:34:26,837 log 75708 139812208256832 Not Found: /media/product/IMG_9057photo-full.jpg
WARNING 2022-02-21 16:34:26,945 log 75708 139812208256832 Not Found: /media/product/IMG_9057photo-full.jpg
ERROR 2022-02-21 16:34:59,041 exception 75708 139812208256832 Invalid HTTP_HOST header: 'fuwu.sogou.com'. You may n
eed to add 'fuwu.sogou.com' to ALLOWED_HOSTS.
무슨 fuwu.sogou.com 이 뜨네요...?
제가 폰으로 들어가보고 있었거든요
이게 코딩에 대해서라기보다 항상 컴퓨터에 대한 지식 부족으로 어려워지는 듯 합니다
답변 부탁드립니다 감사합니다
ye 님 2260
M 2022년 2월 21일 4:48 오후
2개의 답변이 있습니다. 1 / 1 Page
- 우선 wsgi.py 안에
제 기본 설정은 이렇게 되어 있더라고요
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
그래서 책 내용대로
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
이렇게 수정하였고요
-
우선 tmp 안에 gunicorn.sock 파일이 존재하지 않는 상태입니다
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
이렇게 실행하면 자동으로 만들어지는 것으로 알고 있습니다 -
지금 이틀째 헤매면서 이상한 점은
도대체
Feb 23 01:02:41 ip-172-26-12-84 gunicorn[6672]: ModuleNotFoundError: No module named '\\'
이 부분이 하도 이해가 안 가던 차에
서비스 파일을 수정하면서 제가 잘못 이렇게 아래처럼 작성했더니
에러 내용이 다르게 나오더라고요
[서비스 파일 이렇게 잘못 작성을 했더니(--bind 부분을 밑으로 붙이지 않고 따로 위로 작성)]
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/projects/mysite
EnvironmentFile=/home/ubuntu/venvs/mysite.env
ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn \
--workers 2 \--bind
unix:/tmp/gunicorn.sock \
config.wsgi:application
[Install]
WantedBy=multi-user.target
에러 내용이 이렇게 바뀌었습니다
mysite.service - gunicorn daemon
Loaded: loaded (/etc/systemd/system/mysite.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2022-02-23 01:18:55 KST; 8s ago
Process: 6910 ExecStart=/home/ubuntu/venvs/mysite/bin/gunicorn --workers 2 \ --bind unix:/tmp/gunicorn.sock \ (code=exited, status=>
Main PID: 6910 (code=exited, status=3)
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: return _bootstrap._gcd_import(name[level:], package, level)
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: **ModuleNotFoundError: No module named '\\ --bind'
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6922]: [2022-02-23 01:18:55 +0900] [6922] [INFO] Worker exiting (pid: 6922)
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6910]: [2022-02-23 01:18:55 +0900] [6910] [INFO] Shutting down: Master
Feb 23 01:18:55 ip-172-26-12-84 gunicorn[6910]: [2022-02-23 01:18:55 +0900] [6910] [INFO] Reason: Worker failed to boot.
Feb 23 01:18:55 ip-172-26-12-84 systemd[1]: mysite.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Feb 23 01:18:55 ip-172-26-12-84 systemd[1]: mysite.service: Failed with result 'exit-code'.
원래의 에러도 여기서 나오는 것인가본데요
sock 파일이 존재하지 않아서일까요?
부트스트랩 4, 5 tag 되어 있지 않다고도 본 적이 있어서 (로컬로 작성할 때에)
어떤 부분이 에러일 것 같은지만 알려주시면 감사하겠습니다
ye 님
M 2022년 2월 23일 1:33 오전
mysite.service 파일은 다음 URL 참고하셔서 동일하게 작성해 주세요.
--bind
를 윗줄에 붙이시면 안됩니다. \
문자는 한줄로 작성해야 하지만 줄바꿈으로 적고 싶을때 사용하는 문자입니다.
그리고 service를 통해 gunicorn을 실행할경우에는 다음 명령어는 진행하면 안됩니다.
gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
박응용 님
2022년 2월 23일 11:51 오전