0 부터 Ubuntu 에 Django + uwsgi + nginx 배치
sudo apt-get update
sudo apt-get install openssh-server
service ssh start
curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
cd ~
mkdir .pip
cd .pip
cat -e "[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple" > pip.config
sudo apt-get install python3-dev
sudo apt-get install gcc
sudo pip3 install uwsgi
정확 한 설치 여 부 를 확인 하기 위해 서
uwsgi --version
를 사용 할 수 있 습 니 다.# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
이 파일 의 디 렉 터 리 에서 명령 을 실행 합 니 다.
uwsgi --http :8000 --wsgi-file test.py
브 라 우 저 를 열 어 서버 의 ip 를 입력 하 십시오. 포트 8000 에서 hello 를 볼 수 있다 면 World 는 uwsgi 를 설치 하 는 데 성 공 했 습 니 다.
sudo pip install django
django-admin startproject Hello
현재 디 렉 터 리 구 조 는 이 럴 것 입 니 다.
Hello/
manage.py
Hello/
__init__.py
settings.py
urls.py
wsgi.py
django-admin --version
를 설치 하여 버 전 을 볼 수 있 습 니 다. 다른 컴퓨터 에서 페이지 를 봐 야 합 니 다. ALLOWED_HOSTS
setting. py 의 ...
DEBUG = True
ALLOWED_HOSTS = []
...
ALLOWED 에서HOSTS 에 서버 의 ip 주 소 를 입력 합 니 다. 예 를 들 어
...
DEBUG = True
ALLOWED_HOSTS = ["192.168.1.5"]
...
python3 manage.py runserver
이 명령 은 기본적으로 8000 포트 에 서버 를 실행 하고 이 컴퓨터 (서버) 의 요청 만 감청 합 니 다. 서버 이외 의 컴퓨터 에서 탐색 할 필요 가 있 으 면 이 명령 으로 변경 해 야 합 니 다.
python3 manage.py runserver 0.0.0.0:8000
브 라 우 저 에 서버 의 주 소 를 입력 하고 포트 를 추가 하면 테스트 페이지 를 볼 수 있 습 니 다. 그러나 이것 은 개발 용 테스트 서버 입 니 다. 실제 배치 항목 이 필요 하 다 면 이 서버 를 사용 하지 마 십시오.
uwsgi --http :8000 --module Hello.wsgi
브 라 우 저 입력 서버 의 ip 를 엽 니 다. 포트 8000 django 테스트 페이지 를 볼 수 있다 면 django 와 uwsgi 가 정상적으로 작 동 하고 있 음 을 표시 합 니 다.
sudo apt-get install nginx
설치 가 완료 되면 nginx 서비스 가 자동 으로 열 립 니 다. 기본 포트 80, 브 라 우 저 를 열 고 서비스 주 소 를 입력 하면 nginx 테스트 페이지 를 볼 수 있 습 니 다.
upstream django {
server 127.0.0.1:8001;
}
server {
# the port your site will be served on
listen 8000; #
# the domain name it will serve for
server_name 10.0.9.176; # ip
charset utf-8;
# Django media
location /media {
alias /home/yww/djangotest/Hello/media; #
}
location /static {
alias /home/yww/djangotest/Hello/static; #
}
# max upload size
client_max_body_size 75M; # adjust to taste
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /home/yww/djangotest/Hello/uwsgi_params; #uwsgi_params
}
}
이 프로필 은 nginx 에 게 파일 시스템 에서 media 와 static 파일 을 서비스 로 끌 어 올 리 는 동시에 django 의 request 에 응답 하여 / etc / nginx / sites - enabled 디 렉 터 리 에서 이 파일 의 연결 을 만 들 고 nginx 가 사용 할 수 있 도록 합 니 다.
sudo ln -s /home/yww/djangotest/Hello/Hello_nginx.conf /etc/nginx/sites-enabled/
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
그리고 실행
python3 manage.py collectstatic
service nginx restart
정적 파일 이 http: / /: 8000 / static / admin / css / base. css 에 접근 할 수 있 는 지 확인 한 다음 미디어 파일 이 프로젝트 루트 디 렉 터 리 에 미디어 폴 더 를 정상적으로 새로 만 들 었 는 지 확인 하고 임의의 그림 을 넣 습 니 다. 이름 은 test. jpg 로 변경 하여 http: /: 8000 / media / test. jpg 에 접근 하여 그림 을 정상적으로 표시 하 는 지 확인 하 십시오.
uwsgi --socket :8001 --wsgi-file test.py
http: /: 8000 / hello 를 표시 할 수 있다 면 World 를 방문 하면 됩 니 다.
upstream django {
#server 127.0.0.1:8001; #
server unix:///home/yww/djangotest/Hello/Hello.sock; #
}
...
그리고 서버 를 다시 시작 하고 uWSGI 를 실행 합 니 다. 코드 는 다음 과 같 습 니 다.
service nginx restart
uwsgi --socket Hello.sock --wsgi-file test.py --chmod-socket=662
uwsgi --socket Hello.sock --module Hello.wsgi --chmod-socket=662
http: /: 8000 / django 테스트 페이지 를 표시 할 수 있다 면 큰 성 과 를 거 두 었 습 니 다.
# Hello_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/yww/djangotest/Hello
# Django's wsgi file
module = Hello.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe)
socket = /home/yww/djangotest/Hello/Hello.sock
chmod-socket = 662
# clear environment on exit
vacuum = true
uwsgi 를 실행 할 때 이 명령 만 실행 하면 됩 니 다.
uwsgi --ini Hello_uwsgi.ini
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.