Centos7 + uwsgi + nginx를 배포 장고 프로젝트

centos7 + uwsgi + Nginx의 전체 구성에 여러 번, 그리고 마지막으로 수를 시도 후 중간에서 내려 해결책을 줄 것이다 뒤에 많은 문제가 발생했습니다.

몇 마디의 남자가 말했다 프로젝트 구성을 시작했다 :

1, 간단한 소개

원칙을 소개 : 웹 개발 약간 학생들이 알아야 구축 경험, 웹 응용 프로그램 배포 프로덕션 환경의에 있어야 웹 어플리케이션 + 웹 응용 프로그램 서버 소프트웨어 + 웹 서버 소프트웨어 통합 작업. 웹 응용 프로그램 , 이름에서 알 수 있듯이 자바 웹 프로젝트, 장고 프로젝트 나 PHP 프로젝트가 될 수있는 웹 프로젝트이며, 웹 응용 프로그램 서버 소프트웨어 등 톰캣 서버 자바를 사용, 사용 장고 uwsgi 서버, 정상적인 조건에서 같은 장소 웹 응용 프로그램을 실행 은 응용 프로그램 서버 소프트웨어에 서비스를 제공 할 수있는 웹 프로젝트를 배포해야합니다. 그러나 모든 요청, 외부 여부 (이 경우 동적 또는 정적 요청 요청이 ) 소수의 사용자가 실제로 충분하다 등의 경우, 웹 애플리케이션 서버 소프트웨어에 의해 처리되지만, 경우에 사용자의 수가 증가, 균형 배포 서버 부하가 불가피 액세스 상황에서 심각한 결과를 예측할 수없는 피크가 나타납니다을 이끌 것입니다 그렇지 않은 경우, 서버 시스템에 계정에 부하를 고려할 필요가있다. 그리고 우리입니다 웹 서버 소프트웨어가 활동하기 시작하고, 웹 서버 소프트웨어는 물론, 유명한 아파치와의 nginx는, 일반적이고, 애플리케이션 서버 소프트웨어와 함께 사용할, 우리는 쉽게의 웹 사이트를 얻을 수 있습니다 정적 및 동적 분리 , 정적 파일을 요청 및 손 apahce의의 nginx는 동적 요청을 처리 할 수있는 적절한의 nginx 아파치와 애플리케이션 서버 소프트웨어로 전달됩니다.

본원 Centos7 python3.6.8 + + django2.2.4 채용

2, 종속성을 설치

다음 의존도를 설치하지 마십시오 이후의 컴파일은 몇 가지 오류 파이썬, 핍, 장고와 uwsgi 소프트웨어를 설치합니다.

  sudo yum groupinstall "Development tools"
  sudo yum install openssl openssl-devel sqlite-devel zlib-develbzip2-devel  ncurses-devel readline-devel tk-devel 
  sudo yum install pcre pcre-devel pcre-static

3, 파이썬 환경 준비 (그렇지 않으면 가상 환경 파이썬, 예, 건너 참조 할 수 있습니다)

(1) 가상 환경을 설치

아나콘다는 가상 환경을 구성 할 수 있습니다 : 아나콘다 설치

내가 여기있는 가상 환경 구성의 이름입니다 : python3.6.8 환경 py368 사용

(2) 장고 종속성을 설치

pip install django -i https://pypi.douban.com/simple

4, uwsgi 서비스

(1) 설치 uwsgi

  sudo pip install uwsgi

장고 프로젝트 루트 디렉토리 (그리고 manage.py 같은 디렉토리)에 (2)

9007 콜론 전에 포트 번호를 추가하는 기억, 자신의 포트 번호를 설정할 수 있습니다

  uwsgi --http :9007 --module your_proj_name.wsgi

이 시점에서,이 프로젝트는 우리가이 포트를 통해 사이트에 액세스 할 수 있었다 시작했다. 즉, 웹 응용 프로그램 서버 소프트웨어 설치가 완료되었습니다.

5 배치의 nginx

(1) 설치의 nginx

  sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm #安装nginx yum源
  sudo yum info
  sudo yum install nginx

(2) 집합의 nginx 프로필 착수

/etc/nginx/nginx.conf 파일 관리 구성 파일을 촉진하기 위해 디렉토리 /etc/nginx/conf.d/의 모든 구성 파일을 포함하기 때문에, 우리는 /etc/nginx/conf.d/에서 자신의 웹을 만들 이러한 새로운 my_site.conf 파일과 프로젝트 설정 파일. 구성 파일에서, 우리는 (easy_sysman 내 프로젝트 이름) 다음 정보를 입력 :

server {
  listen 9008;  #启动的nginx进程监听请求的端口
  server_name localhost;  #域名
  error_log /var/log/easy_sysman/error.log;   #nginx错误日志,可自行设置,但必须保证提前建立好该目录和文件
  location / {
    include /etc/nginx/uwsgi_params;  
    uwsgi_pass 127.0.0.1:9007;  #对于动态请求,转发到本机的9090端口,也就是uwsgi监听的端口
  }
  #error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;  
  location = /50x.html {
     root /usr/share/nginx/html;
  }
  location /static/ {
    alias /project/djgDemo/static/;   #设定静态文件所在目录
  }
  location /media/ {  
    alias /project/djgDemo/static;    #同样自行设置,要保证目录已经建好
  }
}

(3) 프로파일을 작성, 우리는 구성 파일의 정확성을 확인해야

nginx -t -c /etc/nginx/nginx.conf 

(4)의 nginx에서 디렉토리 세트에 동기 정적 파일을

먼저 장고 프로젝트 setting.py, 증가를 수정

 STATIC_ROOT = '/var/www/easy_sysman/static/'

커맨드 라인 입력에

 python manage.py collectstatic  

자동으로 모든 정적 파일이 색인 디렉토리에 nginx에 복사합니다.

(5) 시작 uwsgi :

A는 장고 프로젝트 디렉토리로 전환

uwsgi --socket :9007 --module easy_sysman.wsgi

여기에 당신이 시작하는 더 복잡한 구성 파일을 사용할 수 있습니다, 당신은 참조 할 수 있습니다 - 투 - 실행 - uwsgi을 뿐인데 A-INI 파일

다음과 같이 B는 물론, 나는, 프로파일 모드를 권장합니다 :

Manage.py 같은 디렉토리에 파일 uwsgi.ini을 만드는 등 다음 읽습니다

# 使用uwsgi+nginx反向代理配置,使用socket完成nginx和uwsgi的连接
socket = localhost:9999
# 通过chdir选项配置当前项目所在路径
chdir = /home/worker/django_worker/mysite
# 通过wsgi-file配置,指向当前项目的wsgi实现文件
uwsgi-file = mysite/wsgi.py
# 主进程启用~使用主进程管理所有进程
master = True
# 配置保存主进程编号的文件
pidfile = uwsgi.pid
# 配置启动多少个进程
processes = 2
# 配置每个进程启动多少个线程
threads = 2
# 配置uwsgi服务器的日志记录
daemonize = uwsgi.log

시작 uwsgi 서버

uwsgi --ini uwsgi.ini

(6)의 nginx 시작

sudo service nginx start 

당신은 액세스 할 수있는  서버의 IP를 : 잘못된 내용에 약간의 보정을 /var/log/easy_sysman/error.log 확인하지 않을 경우 9008 / 페이지가 나타날 수 있습니다.

이 서비스는 방법으로는 다음과 같이 표현 될 수있다 제공한다 :

웹 클라이언트 <-> 웹 서버 <-> 소켓 <-> uWSGI <-> 장고

6, 우분투는 uwsgi 오류 솔루션을 설치

1 https://www.cnblogs.com/xypbk/p/10150059.html 

2, 리눅스下部署장고 uwsgi : 오류를로드 공유 라이브러리 동안 : libpcre.so.1 : 공유 객체 파일을 열 수 없습니다 : 그런 파일이나 디렉토리

우분투에서 장고 배포 서비스는 uwsgi의 사용을 주어지고

명령 : uwsgi --http : 8001 --wsgi-file test.py

报错 信息 : uwsgi : 오류를로드 공유 라이브러리 동안 : libpcre.so.1 : 공유 객체 파일을 열 수 없습니다 : 그런 파일이나 디렉토리

 

해결 방법 :

패키지는 sudo apt-get을 libpcre3 libpcre3- 설치 DEV #의 설치 요구

(일반적으로 루트 디렉토리 / lib 디렉토리 / x86_64에-리눅스 GNU에서 찾기 / -name libpcre.so.3 번호를 찾기 libpcre.so.3를 )

찾을 수 / lib 디렉토리 / x86_64에 는 GNU - 리눅스 / libpcre.so.3

는 sudo -s /lib/x86_64-linux-gnu/libpcre.so.3 /usr/lib/libpcre.so.1 LN # 소프트 링크를 만들

 

게시 84 개 원래 기사 · 원 찬양 149 ·은 50000 +를 볼

추천

출처blog.csdn.net/feifeiyechuan/article/details/103100165