CentOS 7.4 + Django 2.0 + Python 3.6 + gunicorn + nginx + https 환경 설정

4408 단어
배치 환경:
  • CentOS 7.4
  • Django 2.0.6
  • Nginx 1.12.2
  • guniron 19.8.1

  • 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
    

    좋은 웹페이지 즐겨찾기