nginx.conf, sites-enabled, sites-available은 서로를 참조함
sudo apt-get install nginx
nginx.conf 설정
sudovi/etc/nginx/nginx.confhttp {
upstreamdjango {
serverunix:/home/ubuntu/프로젝트폴더/uwsgi.sock;
#.sock은 uwsgi.ini와 같은 경로# ex) server unix:home/ubuntu/{경로}/uwsgi.sock;
}
###client_max_body_size #server_name(도메인) 설정 가능 => ip접근 시 raise 400
...
uwsgi pass 및 static, media루트 설정
sudovi/etc/nginx/sites-enabled/defaultlocation/ {
##include/etc/nginx/uwsgi_params;
uwsgi_passdjango;
}
location/static/ {
alias/home/ubuntu/{static경로}/static/;
}
location/media/ {
aliashttps:/storage.s3.amazonaws.com/media/;
# 위 경로는 s3사용했을 시 경로입니다!# django project 내부의 media폴더를 사용할 시 해당 경로를 입력하시면 됩니다!
}
...
tip : nginx에서 유효하지 않은 응답 넣어주기
server {
listen80default_server;
return444;
}
nginx Command
sudo service nginx start
sudo service nginx stop
sudo service nginx reload
sudo service nginx restart
#관리자 계정 접근
sudo -u postgres psql
# root계정 비밀번호 설정
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'password';# user 생성
CREATE USER [username] WITH ENCRYPTED PASSWORD 'password';# user 소유의 DB생성
CREATE DATABASE [db_name] OWNER [username];# user에게 DB모든 권한 부여
GRANT ALL PRIVILEGES ON DATABASE [db_name] TO [username];# 재시작
sudo /etc/init.d/postgresql restart
psql
# 데이터베이스 리스트 보기\l# 데이터베이스 접근\c db_name
수정 및 배포
git pull
python manage.py collectstatic
migration or migrate
uwsgi --ini uwsgi.ini
sudo service nginx reload #nginx의 설정이 바뀌었을 때만