아 배포 진짜로 힘들다 이렇게 하기 힘든거 였나?
- nginx까지 등록 완료
- docker와 gunicorn을 사용해서 배포
문제점 :
- nginx를 사용시 web과 nginx연동이 불가능 한 상황 발생
- static파일을 사용할 수 없는 문제 발생
- 서버의 ssl인증을 받았으나 적용이 되지 않는 문제 발생
- 각 www. 유뮤, https/http 상관없이 하나의 사이트로 이동할 수 있도록 설정 필요
- 코드
# Dockerfile 내용 # 베이스 이미지 설정 FROM python:3.10 # 환경 변수 설정 ENV PYTHONUNBUFFERED 1 # GNU Gettext와 OpenCV 설치 RUN apt-get update && apt-get install -y \\ gettext \\ libgl1-mesa-glx \\ libglib2.0-0 \\ && apt-get clean \\ && rm -rf /var/lib/apt/lists/* # 작업 디렉토리 설정 WORKDIR /app # requirements.txt 복사 및 패키지 설치 COPY requirements.txt /app/ RUN pip install --upgrade pip && \\ pip install -r requirements.txt # 애플리케이션 코드 복사 COPY . /app/
version: '3.8' services: web: build: . command: sh -c "if [ ! -f /app/.initialized ]; then python manage.py migrate --noinput && python manage.py compilemessages && touch /app/.initialized; fi && gunicorn --bind 0.0.0.0:8000 SilverLining.wsgi:application" volumes: - .:/app ports: - "8000:8000" depends_on: - db - redis environment: DATABASE_URL: postgres://myuser:mypassword@db:5432/mydb networks: - backend nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./static:/static - ./media:/media depends_on: - web networks: - backend db: image: postgres:latest environment: POSTGRES_DB: mydb POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword volumes: - postgres_data:/var/lib/postgresql/data networks: - backend redis: image: redis:latest networks: - backend volumes: postgres_data: networks: backend: driver: bridge
- # nginx worker_processes 1; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name silverlinings.site www.silverlinings.site; location / { proxy_pass <http://web:8000>; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /static/ { alias /static/; } location /media/ { alias /media/; } } }
해결방안 :
- nginx 포트를 8080에서 80으로 변환하여 설정 및 ec2에서도 모든 포트를 80포트로 설정
- settings.py와 nginx.conf 파일의 static설정을 동일하게 하며 staticfiles삭제
- 아직 해결 못함 ( http로 입장을 해도 https로 리다이렉션을 할 수 있도록)
- 아직 해결 못함 ( 3번과 동일한 방법으로 모든 주소를 하나의 주소로 리다이렉션을 할 수 있도록 수정)
임우재튜터님 피드백 : 키워드전달
- aws http to https redirect
- aws load balancer health check django
현재 진행 상황
- nginx docker 등록 (완료)
- 음성 인식 주문 기능 - 장바구니 오류 개선 (진행중)
- 고령화 템플릿의 음성인식을 통한 메뉴 삽입 검색 결제가 판단할 수 있도록 수정 되었으며, 캐시를 통한 매뉴 수정 및 오랬동안 응답이 없을 시에는 메인으로 돌아감
- 구매한 도메인을 ip주소에 연동하여 작업하는 기능 완료
- 메인화면 페이지 수정 및 css 수정
- 메인화면
- css 변경 건
'코딩 교육 TIL' 카테고리의 다른 글
2024-06-11 AI 코딩 TIL (2) | 2024.06.11 |
---|---|
2024-06-10 AI 코딩 TIL (0) | 2024.06.10 |
2024-06-05 AI 코딩 TIL (2) | 2024.06.05 |
2024-06-04 AI 코딩 TIL (0) | 2024.06.04 |
2024-06-03 AI 코딩 TIL (1) | 2024.06.03 |