nginx 실행하면 계속 서버에러가 뜹니다. 꼭 좀 봐주세요
안녕하세요, 평소 장고 개념으로 헤메다가 님의 저서를 통해서 큰 도움을 받고 있습니다.
pybo 시스템 따라하기를 하다가 안되는 부분이 있어서 게시판에 남김니다...몇일을 헤메서 꼭 좀 해결 부탁드리겠습니다
참고로 저는 프로젝트 폴더명을 projects 에서 stock_alarm 으로 변경하여 구성했습니다.
구축환경은 아마존 lightsail 을 이용 중이고요
방화벽 80 포트는 모두 허용한 상태입니다.
gunicorn 서비스만 돌리면 고정ip :8000으로 브라우저url 을 치면 잘 돌아갑니다.
근데 nginx로 실행((mysite) ubuntu@jellybean:/etc/nginx/sites-enabled$ sudo systemctl restart nginx
)을 하면 서버에러 메세지가 뜹니다
/etc/systemd/system/ 폴더에 있는 mysite.service 파일입니다. 책과 동일합니다.
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/stock_alarm/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
gunicorn.sock 파일도 tmp 폴더 밑에 생성되어있습니다.
아래는 로그입니다. 먼저
/var/log/nginx/error,log
2022/04/16 08:33:37 [alert] 1128#1128: *216 open socket #11 left in connection 4
2022/04/16 08:33:37 [alert] 1128#1128: aborting
syslog 입니다
Apr 16 08:38:22 jellybean systemd[1]: Started Session 18 of user ubuntu.
Apr 16 08:38:23 jellybean systemd[1]: session-18.scope: Succeeded.
Apr 16 08:38:37 jellybean systemd[1]: Started Session 19 of user ubuntu.
Apr 16 08:38:38 jellybean systemd[1]: session-19.scope: Succeeded.
Apr 16 08:38:43 jellybean systemd[1]: Started Session 20 of user ubuntu.
Apr 16 08:38:44 jellybean systemd[1]: session-20.scope: Succeeded.
Apr 16 08:38:58 jellybean systemd-networkd[438]: eth0: DHCPv6 address 2406:da12:351:7f00:6f7d:5f07:113b:8185/128 timeout preferred 140 valid 450
Apr 16 08:39:45 jellybean systemd[1]: Stopping A high performance web server and a reverse proxy server...
Apr 16 08:39:45 jellybean systemd[1]: nginx.service: Succeeded.
Apr 16 08:39:45 jellybean systemd[1]: Stopped A high performance web server and a reverse proxy server.
Apr 16 08:39:45 jellybean systemd[1]: Starting A high performance web server and a reverse proxy server...
Apr 16 08:39:45 jellybean systemd[1]: Started A high performance web server and a reverse proxy server.
Apr 16 08:40:08 jellybean systemd-networkd[438]: eth0: DHCPv6 address 2406:da12:351:7f00:6f7d:5f07:113b:8185/128 timeout preferred 140 valid 450
Apr 16 08:43:38 jellybean systemd-networkd[438]: message repeated 3 times: [ eth0: DHCPv6 address 2406:da12:351:7f00:6f7d:5f07:113b:8185/128 timeout preferred 140 valid 450]
Apr 16 08:43:50 jellybean systemd[1]: Started Session 21 of user ubuntu.
mysite.log 입니다.
아래 보시면 UnboundLocalError 가 나오는데요, global 변수처리해도 계속 나오네요
참고로 교재를 약간 변형해서 테이블 형태로 값을 가져오게 구성했습니다
변형된 것이라 문의드리기도 그런데 꼭 좀 봐주셨으면 합니다...3일째 헤메고 있습니다
진심으로 감사드리며
Traceback (most recent call last):
File "/home/ubuntu/venvs/mysite/lib/python3.8/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/home/ubuntu/venvs/mysite/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, callback_args, *callback_kwargs)
File "/home/ubuntu/stock_alarm/mysite/rt_tp_checker/views.py", line 95, in tp_view
table = TargetPriceTable(tp_list)
UnboundLocalError: local variable 'table' referenced before assignment
=====================================================
view.py
from multiprocessing import context
from django.shortcuts import render
from django.http import HttpResponse
from .models import TargetPrice
from .tables import TargetPriceTable
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
from rt_tp_checker.models import TargetPrice
def code_from_django_db():
def get_current_price(symbol):
def parsing(code_data_list):
def tp_view(request):
if(request.GET.get('mybtn')):
tp_list = list(TargetPrice.objects.values())
code_data_list = code_from_django_db()
parsing(code_data_list)
table = TargetPriceTable(tp_list)
return render(request, 'rt_tp_checker/tpchecker.html', {'table': table})
아떼떼 님 1286
M 2022년 4월 16일 7:11 오후
1개의 답변이 있습니다. 1 / 1 Page
def tp_view(request):
if(request.GET.get('mybtn')):
tp_list = list(TargetPrice.objects.values())
code_data_list = code_from_django_db()
parsing(code_data_list)
table = TargetPriceTable(tp_list)
return render(request, 'rt_tp_checker/tpchecker.html', {'table': table})
tp_view 함수에서 request에 mybtn 값이 없을 경우에는 table 변수가 없기 때문에 위의 오류가 발생할수 있습니다.
nginx 문제와 상관 있는지는 모르겠지만 언급하신 오류는 이 문제로 보이네요.
박응용 님
M 2022년 4월 16일 2:42 오후