Python “mysqlclient” 설치 에러 관련(ubuntu20.xx.xx 서버 기준)
# apt 설치 패키지 관련 업데이트
$ sudo apt-get update
# 관련 패키지 설치
$ sudo apt-get install mysql-server
$ sudo apt-get install python3.9-dev libmysqlclient-dev gcc default-libmysqlclient-dev
# Python "mysqlclient" 라이브러리를 설치하기 위해 mysql 관련 파일들만 필요하므로
# Ubuntu 내에 mysql은 중지를 하자(시스템 메모리를 거의 40% 잡아먹음. t3.micro 기준)
$ sudo service mysql stop
Python 가상머신 설치하기
$ sudo apt install python3.9-venv
$ python3.9 -m venv [venv_name]
Python 가상환경 진입 및 패키지 일괄 설치
$ source venv/bin/activate
$(venv) pip3 install -r requirements.txt
// 목록 안에 "mysqlclient" 라이브러리는 따로 설치를 해야 충돌이 안 나는 이슈를 확인함
Gunicorn 프로토콜 통신 설정 관련
$ cd /etc/systemd/system
$ sudo vi gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/WalkDoni_API
ExecStart=/home/ubuntu/WalkDoni_API/venv/bin/gunicorn \
--workers 4 \
--bind 0.0.0.0:8000 \
core_repository.wsgi:application
[Install]
WantedBy=multi-user.target
$ sudo systemctl start gunicorn
$ sudo systemctl enable gunicorn // 서버 재부팅 시, 가동
$ sudo systemctl daemon-reload // gunicorn 파일 변경 시, 데몬 재시작 필요
$ sudo systemctl restart gunicorn // 변경된 gunicorn 재시작
Nginx 프록시 설정 관련
$ sudo apt-get install nginx
$ sudo vi /etc/nginx/sites-available/<프로젝트 이름>
server {
listen 80;
server_name <IP주소>; // ex) api.walkdoni.com;
location / {
include proxy_params;
proxy_pass http://<IP주소>:8000;
}
}
$ sudo ln -s /etc/nginx/sites-available/<프로젝트 이름> /etc/nginx/sites-enabled
$ sudo nginx -t // nginx 설정 확인
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(위와 같이 나와야 성공)
$ sudo systemctl restart nginx
$ sudo systemctl status nginx.service // nginx 상태 확인
Nginx Log 관련
$ sudo vi /var/log/nginx/access.log
$ sudo vi /var/log/nginx/error.log
Nginx Conf 설정 파일 관련
$ sudo vi /etc/nginx/nginx.conf
* nginx 관련 고유 속성 값들을 컨트롤 하는 부분