html
DEBUG = False # 填寫你本身的ip和域名 ALLOWED_HOSTS = ["www.youkou.site", "39.108.191.165", "localhost", "127.0.0.1"] # 此處設置能夠訪問服務器的IP地址,*爲容許因此地址
# 修改MyBlog/wsgi.py文件 import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyBlog.pro_settings') # 修改成複製新的settings文件名 application = get_wsgi_application()
python
nginx
建立虛擬環境web
# 虛擬新的環境名,隨意命名 mkvirtualenv dj_pro
安裝項目相關包shell
# 進入到虛擬環境 workon dj_pro # 安裝包 # 須要把requirements.txt文件中的fdfs-client-py刪除 pip install -r requirements.txt # 在文件的目錄下安裝fdfs_client.zip pip install fdfs_client.zip
將項目本地目錄上傳至服務器(能夠是阿里雲ECS服務器)django
方法一:vim
可使用xshell鏈接阿里雲服務器,經過rz命令將本地項目目錄壓縮爲zip以後,上傳至服務器瀏覽器
在阿里雲服務器上,使用unzip 解壓項目壓縮文件服務器
unzip 你的項目壓縮文件.zip
app
方法二:
可使用提供ssh鏈接的工具,將項目目錄發送到服務器家目錄中
scp -r 你的項目目錄 服務器用戶名@服務器IP:~/ -p ssh服務端口
# 例如 scp -r /home/Conner/MyBlog root@服務器IP:~/ -p 22
# 進入到虛擬環境 workon dj_pro # 安裝uwsgi pip install uwsgi
測試uwsgi是否安裝成功:
# 新建測試py文件 # test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] # python3 #return ["Hello World"] # python2
在test.py文件目錄下服務器運行uwsgi:
uwsgi --http :8000 --wsgi-file test.py
測試uwsgi運行是否正常:
127.0.0.1:8000 # 瀏覽器的url
[uwsgi] # 使用nginx鏈接時使用,Django程序所在服務器地址 # 選擇內網IP和端口 socket=172.18.168.123:8000 # 項目根目錄 chdir=/home/Conner/MyBlog #項目中wsgi.py文件的相對目錄 wsgi-file=MyBlog/wsgi.py # 進程數 processes=2 # 線程數 threads=2 # uwsgi服務器的角色 master=True # 存放進程編號的文件 pidfile=uwsgi.pid # 日誌文件,由於uwsgi能夠脫離終端在後臺運行,日誌看不見。之前的runserver是依賴終端的 daemonize=logs/uwsgi.log # 指定虛擬環境解釋器所在目錄,不能填相對目錄 virtualenv=/home/Conner/.virtualenvs/dj_pro
# 啓動uwsgi uwsgi --ini uwsgi_conf.ini & # 中止uwsgi uwsgi --stop uwsgi.pid
(主要用於靜態文件服務)
# 安裝nginx sudo apt update -y sudo apt install nginx -y
# 啓動nginx,查看啓動狀態,若是啓動狀態未active,則表明啓動成功 sudo systemctl start nginx && sudo systemctl status nginx
# 默認開啓80端口,能夠查看一下是否提供web服務
curl -I 127.0.0.1
sudo systemctl stop nginx
start the web server when it is stopped, type:
sudo systemctl start nginx
stop and then start the service again, type:
sudo systemctl restart nginx
reload without dropping connections. To do this, type:
sudo systemctl reload nginx
disable this behavior by typing:
sudo systemctl disable nginx
start up at boot, you can type:
sudo systemctl enable nginx
建立/etc/nginx/conf.d/nginx_dj_pro.conf文件:
upstream MyBlog { # 此處爲uwsgi運行的ip地址和端口號 server 172.18.168.123:8000; } server { # 監聽端口 listen 80; # 服務器域名或者ip地址 server_name 39.108.191.165 .youkou.site; # 編碼 charset utf-8; # 文件最大上傳大小 client_max_body_size 75M; # 媒體文件 location /media { alias /home/Conner/MyBlog/media; } # 靜態文件 location /static { alias /home/Conner/MyBlog/static; } # 主目錄 location / { uwsgi_pass MyBlog; include /etc/nginx/uwsgi_params; } }
# 修改sudo vim /etc/nginx/nginx.conf # 第一行開頭修改用戶,將www-data改成你當前的用戶 user pyvip;
# 測試nginx配置文件是否正確, sudo nginx -t -c /etc/nginx/nginx.conf # 打印以下內容,則沒問題 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 從新加載配置 sudo nginx -c /etc/nginx/nginx.conf sudo nginx -s reload