nginx 와 django app의 container를 분리 하기 위해 작업을 하던 중 발생한 이슈 상황과 해결 방법 정리
사용 docker compose file
version: "3.7"
services:
nginx:
container_name: web_server
restart: on-failure
image: nginx:stable
volumes:
- ${PWD}/etc/jnbdrive_nginx:/etc/nginx/sites-enabled/default
- ${PWD}/etc/nginx.conf:/etc/nginx/nginx.conf:ro
- ${PWD}/staticfiles:/home/nginx/www/static
ports:
- 80:80
environment:
DJANGO_HOST: django_app
django_app:
container_name: django_app
build: .
image: django_app:latest
ports:
- 8000:8000
restart: always
environment:
DB_PORT: 3306
DB_HOST_ADDRESS: mysql
tty: true
networks:
- backend
volumes:
- ${PWD}:/home/docker/workspace/django_app
command: ./start_server.sh
networks:
backend:
# Use a custom driver
driver: bridge
nginx 설정 파일
upstream app {
server ${DJANGO_HOST}:8000;
}
server {
listen 80;
server_name 192.168.0.5; ##client 가 접속하는 도메인네임, 장고 app 의 서버 주소
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
autoindex on;
alias /home/nginx/www/static;
}
location / {
include proxy_params;
proxy_pass http:app;
}
}
발생 문제
issue 1. wget 192.168.0.5 명령시 nginx server에서 proxy server 로 보내는 요청에 대해 timeout 발생
aws ec2 인스턴스에서 기본적으로 80번 포트를 막고 있기 때문에 발생하는 상으로 보안그룹 설정에서 인바운드 규칙 변경하면 해결 가능.
아래 페이지 참조 [aws] 인바운드 규칙 변경
issue 2. proxy_params 파일 없음 에러
web_server | nginx: [emerg] open() "/etc/nginx/proxy_params" failed (2: No such file or directory) in /etc/nginx/sites-enabled/default:13
nginx:latest docker 이미지를 사용 했는데 이 도커 이미지에는 /etc/nginx/proxy_params 파일이 존재 하지 않기 때문에 발생한는 에러이다.
/etc/nginx/proxy_params 파일은 pip install nginx 로 설치할 경우 자동으로 생성되었는데 이 도커 이미지에는 없어서 아래 방법으로 파일을 container 에 마운트 했서 해결했다.
issue 2 해결 방안: docker compose volumes 에 ' - /path/to/proxy_params:/etc/nginx/proxy_params' 옵션 추가
- 끝 -
'Common' 카테고리의 다른 글
opencv: libSM.so.6: cannot open shared object file: No such file or directory (0) | 2023.08.11 |
---|---|
[nginx] nginx 설정 팁 (0) | 2023.02.15 |
[django] nginx 와 django app 분리 (0) | 2023.01.16 |
[Docker] time zone user input (0) | 2023.01.10 |
[ubuntu] Conflicting values set for option Signed-By regarding source ~ 에러 (0) | 2023.01.09 |