1. GCP 및 Django 환경 구축
① GCP 프로젝트 생성
② GCP 서버 구성
③ GCP 네트워크 설정
④ uwsgi 설치
2. GCP Root 계정 진입
sudo passwd # root 계정 비밀번호 설정
su - # root 계정으로 접근
3. uWSGI 설정
① uWSGi Config 디렉토리 생성
mkdir -p /etc/uwsgi/sites
② uWSGI 로그 디렉토리 생성
mkdir -p /var/log/uwsgi
③ uWSGI Config 파일 생성
vi /etc/uwsgi/sites/django.ini
--------------------------------
[uwsgi]
project = django_practice # 프로젝트명
username = root
base = /home/codren/django_practice # 프로젝트 경로
chdir = /home/codren/django_practice # 프로젝트 경로
home = /home/codren/virtualenv # 가상환경 경로
virtualenv = /home/codren/virtualenv # 가상환경 경로
module = django_practice.wsgi:application # 프로젝트 경로.wsgi
master = true
processes = 5
uid = root
socket = /run/uwsgi/django.sock # 소켓 경로
chown-socket = root:nginx
chmod-socket = 666
vacuum = true
logto = /var/log/uwsgi/django.log # 로그 파일 경로
④ uWSGI 데몬 서비스 생성 및 등록
vi /etc/systemd/system/uwsgi.service
-----------------------------------
[Unit]
Description=uWSGI service
[Service]
ExecStartPre=/bin/mkdir -p /run/uwsgi
ExecStartPre=/bin/chown root:nginx /run/uwsgi
ExecStart=/home/codren/virtualenv/bin/uwsgi --emperor /etc/uwsgi/sites # 가상환경 경로 (uwsgi 명령 프로그램)
Restart=always
Type=notify
NotifyAccess=all
[Install]
WantedBy=multi-user.target
4. Nginx 설정
① Nginx 설치
yum install -y nginx
② Django 사이트용 Nginx Config 파일 생성 및 설정
vi /etc/nginx/conf.d/django.conf
-----------------------------------
server{
listen 80;
server_name 34.64.249.76; # GCP 외부 IP
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/django.sock; # socket 경로
}
location /static/ {
alias /home/codren/django_practice/static/; # static 파일 경로
}
}
5. SElinux 설정
6. nginx 및 uwsgi 실행
systemctl start nginx
systemctl start uwsgi
7. 접속 결과 화면
1. 502 Gate error
2. Static 파일 접근 error
chmod 755 codren # home/ 에서 수행
chmod 755 django_practice # home/codren 에서 수행
3. GCP SSH 접속 error