CentOS 7.4 + Django 2.0 + Python 3.6 + gunicorn + nginx + https 환경 설정
django, nginx, guniron 설치
django
pip install django==2.0.6
nginx
1. 설치
yum -y install epel-release
yum -y install nginx
2. 시동
systemctl start nginx
systemctl enable nginx
3. 프로필 수정
/etc/nginx/nginx.conf
user root root;
worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name localhost;
root /opt/django-blog;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
/etc/nginx/conf.d/django_site.conf
upstream blog-gunicorn {
server 127.0.0.1:8000 fail_timeout=0;
}
#
server {
listen 80;
server_name site.com;
return 301 https://$server_name$request_uri;
}
#
server {
# ,
listen 443 default ssl;
client_max_body_size 4G;
server_name site.com;
#
access_log /var/log/nginx/blog.access_log;
error_log /var/log/nginx/blog.error_log;
# nginx ssl
ssl on;
ssl_certificate /etc/nginx/ssl/1_site.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_site.com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#
root /opt/django-blog;
# Nginx
location /static/ {
# Autoindex the files to make them browsable if you want
autoindex on;
# The location of your files
alias /opt/django-blog/static/;
# Set up caching for your static files
expires 1M;
access_log off;
add_header Cache-Control "public";
proxy_ignore_headers "Set-Cookie";
}
# Nginx
location /media/ {
autoindex on;
# The location of your uploaded files
alias /opt/django-blog/media/;
# Set up aching for your uploaded files
expires 1M;
access_log off;
add_header Cache-Control "public";
proxy_ignore_headers "Set-Cookie";
}
location / {
# Try your static files first, then redirect to Gunicorn
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect ~^http://([^:]+)(:\d+)?(.*)$ https://$1$3;
proxy_pass http://127.0.0.1:8000;
}
}
4. 다시 불 러 오기 설정
systemctl reload nginx
3. gunicorn 설치
pip insatll gunicorn
설치 후 django 프로젝트 루트 디 렉 터 리 를 만 들 수 있 습 니 다. gunicorn - conf. py 를 만 들 수 있 습 니 다.
import multiprocessing
bind = "0.0.0.0:8000"
workers = 2
workers = multiprocessing.cpu_count() * 2 + 1
errorlog = "/opt/django-blog/gunicorn.error.log"
#loglevel = "debug"
proc_name = "gunicorn_blog"
reload = True
daemon = True
그리고 프로젝트 루트 디 렉 터 리 아래 명령 을 내 립 니 다.
gunicorn -c gunicorn-conf.py -D --error-logfile / /gunicorn-error.log .wsgi
nginx 다시 시작:
systemctl reload nginx
그리고 방문:
https://site.com
4. 슈퍼 바 이 저 를 설치 하려 면 python 2 로 설치 해 야 합 니 다. python 3 은 지원 되 지 않 습 니 다 (설치 선택 가능)
yum -y install supervisor
git clone
cd supervisor/
python2 setup.py install
/ etc / supervisord. conf 끝 에 자신의 프로젝트 에 따라 설정 항목 을 추가 합 니 다. 다음 과 같은 예 입 니 다.
[program:django_blog]
command=/usr/bin/gunicorn -c /opt/django-blog/gunicorn.conf django_blog.wsgi:application
directory=//opt/django-blog
autostart=true
autorestart=true
stdout_logfile=/opt/django-blog/logs/gunicorn.log
stderr_logfile=/opt/django-blog/logs/gunicorn.err
슈퍼 바 이 저 시작:
supervisord -c /etc/supervisord.conf
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.