gunicorn 관련 질문드립니다
  1. gunicorn --bind 0:8000 config.wsgi:application
  2. 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 1902

M 2022년 2월 21일 4:48 오후

책의 순서대로 진행해 보세요. - 박응용님, 2022년 2월 21일 5:04 오후 추천 , 대댓글
@박응용님 책의 순서대로 진행해보았는데 다시 이틀째 고민을 해도 답을 못 찾겠네요 ㅠㅠ 아래 다시 정리해서 올릴테니 봐주시면 정말 감사하겠습니다 - ye님, 2022년 2월 23일 1:21 오전 추천 , 대댓글
하이 - citicardcool님, 2022년 3월 13일 1:52 오후 추천 , 대댓글
목록으로
2개의 답변이 있습니다. 1 / 1 Page
  1. 우선 wsgi.py 안에
    제 기본 설정은 이렇게 되어 있더라고요
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
    그래서 책 내용대로
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")

이렇게 수정하였고요

  1. 우선 tmp 안에 gunicorn.sock 파일이 존재하지 않는 상태입니다
    gunicorn --bind unix:/tmp/gunicorn.sock config.wsgi:application
    이렇게 실행하면 자동으로 만들어지는 것으로 알고 있습니다

  2. 지금 이틀째 헤매면서 이상한 점은
    도대체
    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 오전