서버 구축 프로 세 스 기록 Nginx + uwsgi + Django
본문 진행 의 전제:
로 컬 에서 Django 프로젝트 디 버 깅 을 마 친 후 서버 로 이동 하 는 데 하루 가 걸 렸 습 니 다. 절 차 를 참고 하 십시오.
첫 번 째 Django 프로젝트 설정 수정 완료
//settings.py
DEBUG = False
ALLOWED_HOSTS = ['*']
# STATICFILES_DIRS django
# STATIC_ROOT ./manage.py collectstatic ( app )
# nginx STATIC_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static')
# ]
# ,
#nginx , http , 、 ,
# nginx , ,
# ,nginx , uWSGI;uWSGI , wsgi,
#wsgi django , django wsgi,
#wsgi , uWSGI,
#uWSGI nginx,nginx ( )。
#* :
# project.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
#
server {
listen 80;
server_name www.19950314nina.top; #
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
# ,nginx uWSGI;uWSGI , wsgi,
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # 8000 uwsgi.ini
uwsgi_read_timeout 10; # 504
}
# nginx , ,
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/mrg/PycharmProjects/myblog/static/; # setting.py STATIC_ROOT
}
}
}
[uwsgi]
socket = :8000 # nginx
chdir=/home/mrg/PycharmProjects/myblog # django
module= myblog.wsgi # wsgi.py
master = true
processes=2
threads=2
max-requests=2000
chmod-socket=664
vacuum=true
daemonize = /home/mrg/PycharmProjects/myblog/uwsgi.log # uwsgi
#
[uwsgi]
socket= :8000
chdir = /home/mrg/PycharmProjects/myblog #django
module = myblog.wsgi
master = true
processes = 4
vacumm = true
두 번 째 사용 git
저 한 테 는 git 를 사용 하 는 게 편 해 요.
다른 방식 으로 파일 을 서버 에 업로드 할 수도 있 습 니 다.
git init #
git remote add origin #
source ~/env/bin/activate # django
pip freeze > requirements.txt #
git add . #
git commit -m ' ' #
git push origin master #
코드 충돌 상황 # , , :
git stash
git pull
git stash pop
# . :
git reset --hard
git pull
ssh [email protected]
한 후 사용 자 를 만 듭 니 다 (이미 있 으 면 중복 할 필요 가 없습니다) # root ,mrg
# ,
root@localhost:~# useradd -m -s /bin/bash mrg
#
root@localhost:~# usermod -a -G sudo mrg
#
# , ,
root@localhost:~# passwd mrg
#
root@localhost:~# su mrg
# ,@ root
mrg@localhost:~$
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install man gcc make sudo lsof ssh openssl tree vim dnsutils iputils-ping net-tools psmisc sysstat curl telnet traceroute wget libbz2-dev libpcre3 libpcre3-dev libreadline-dev libsqlite3-dev libssl-dev zlib1g-dev git mysql-server mysql-client zip p7zip mycli
- sudo apt-get python3-pip
- sudo pip3 install virtualenv
- sudo virtualenv -p python3 env_name
- source ~/env_name/bin/active
- pip install uwsgi uwsgi
- deactivate
- sudo ufw allow 80 80
mysql
cd /etc/mysql/mysql.conf.d
sudo cp mysql.cnf mysql.cnf.bak
sudo vim mysql.cnf
[mysqld] :
character_set_server = utf8
sudo systemctl restart mysql.service #
sudo apt-get install nginx #
sudo /etc/init.d/nginx start[or stop or restart] # , ,
git clone # clone
# cd
source ~/env/bin/activate #
pip install -r requirements.txt #
네 번 째 단계 설정 확인 및 수정
#
grant all on *.* to 'django'@'%' identified by 'djangopwd';
#
flush privileges;
#
create database project
#cd
./manage.py makemigrations #
./manage.py migrate #
./manage.py collectstatic #
1.settings.py
2.project.conf
alias /home/mrg/PycharmProjects/myblog/static/; # setting.py STATIC_ROOT
3.projectname_uwsgi.ini
chdir=/home/mrg/PycharmProjects/myblog # django
2,3
# cd
uwsgi --ini project_uwsgi.ini
nginx -c /home/mrg/PycharmProjects/myblog/project.conf #
-----------------------------------------------------------------------------------------------------------------------------
후기
나 처럼 어 리 석 은 가운데 끊임없이 지식 을 얻 고 진보 하 는 사람들 에 게 바 칩 니 다.
네온사인 이 반 짝 이지 만, 사람들 이 진정 으로 필요 로 하 는 것 은 단지 앞길 을 밝 힐 수 있 는 촛불 일 뿐이다.
참고 블 로그:
https://blog.csdn.net/c465869935/article/details/53242126
https://www.cnblogs.com/fnng/p/5268633.html
https://www.zmrenwu.com/post/20/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.