1. 程式人生 > 其它 >Nginx +uwsgi+Django+mysql

Nginx +uwsgi+Django+mysql

多站點部署:

專案1執行在8000埠
專案2執行在8001埠

1、伺服器準備

主機ip身份
db01 192.168.15.51 資料庫
web02 192.168.15.8 web伺服器

2、上傳專案1

3、修改配置

vim /opt/BBS18_day01/BBS18_day01/settings.py

ALLOWED_HOSTS = ['*']
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'HOST': '172.16.1.51',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123456',
        'CHARSET': 'utf8'
    }
}

4、安裝對應資料庫操作包

pip 換源(主要是為了加速,此步可跳過)
蝸牛:69 python之pip換源0 贊同 · 0 評論文章
pip3 install pymysql
pip3 install --upgrade pip
pip3 install pillow 
pip3 install bs4

5、執行資料庫遷移命令

cd /opt/BBS18_day01/
python3 manage.py makemigrations 

再次執行資料庫遷移命令

python3 manage.py makemigrations 
python3 manage.py migrate

6、啟動專案並測試專案

python3 manage.py runserver 0.0.0.0:8000

7、Nginx 代理 Django

1.配置uwsgi

cd /opt/BBS18_day01

vi myuwsgi.ini

[uwsgi]
# 埠號
socket          = :8000
# 指定專案的目錄
chdir           = /opt/BBS18_day01
# wsgi檔案路徑
wsgi-file       = BBS18_day01/wsgi.py
# 模組wsgi路徑
module          = BBS18_day01.wsgi
# 是否開啟master程序
master          = true
# 工作程序的最大數目
processes       = 4
# 結束後是否清理檔案
vacuum          = true

2.啟動uwsgi

uwsgi -d --ini myuwsgi.ini

3.配置Nginx + uwsgi

cd /etc/nginx/conf.d

vim bbs1.conf

# 配置一個網站
server {
	# 監聽的埠
	listen 80;
	# 配置域名
	server_name bbs1.test.com;
	# 配置路徑
	location / {
		# 載入Nginx代理uwsgi的配置項 
		include uwsgi_params;
	# 指定uwsgi的訪問地址
		uwsgi_pass 127.0.0.1:8000;
	# 連線uwsgi的超時時間
		uwsgi_read_timeout 2;
	# 自定義uwsgi代理專案的路徑及配置項
		uwsgi_param UWSGI_SCRIPT BBS18_day01.wsgi;
	# 指定python專案的路徑
		uwsgi_param UWSGI_CHDIR /opt/BBS18_day01;
	# 索引檔案
		index  index.html index.htm;
	# 客戶端上傳檔案的最大值
		client_max_body_size 35m;
	}
}

4.啟動Nginx

systemctl start nginx

5.修改Windows的host檔案

192.168.15.8 bbs1.test.com

6.測試

http://bbs1.test.com/home/

8、部署專案2

1.上傳專案:

2.安裝上面步驟一步一步執行

注意:

先要建立一個bbs的資料庫,專案2使用bbs資料庫

3.專案2uwsgi配置如下:

[uwsgi]
# 埠號
socket          = :8001
# 指定專案的目錄
chdir           = /opt/BBS
# wsgi檔案路徑
wsgi-file       = BBS/wsgi.py
# 模組wsgi路徑
module          = BBS.wsgi
# 是否開啟master程序
master          = true
# 工作程序的最大數目
processes       = 4
# 結束後是否清理檔案
vacuum          = true

4.專案2的bbs2.conf的配置如下:

# 配置一個網站
server {
	# 監聽的埠
	listen 80;
	# 配置域名
	server_name bbs2.test.com;
	# 配置路徑
	location / {
		# 載入Nginx代理uwsgi的配置項 
		include uwsgi_params;
	# 指定uwsgi的訪問地址
		uwsgi_pass 127.0.0.1:8001;
	# 連線uwsgi的超時時間
		uwsgi_read_timeout 2;
	# 自定義uwsgi代理專案的路徑及配置項
		uwsgi_param UWSGI_SCRIPT BBS.wsgi;
	# 指定python專案的路徑
		uwsgi_param UWSGI_CHDIR /opt/BBS;
	# 索引檔案
		index  index.html index.htm;
	# 客戶端上傳檔案的最大值
		client_max_body_size 35m;
	}
}

5.在專案2下啟動uwsgi、重啟nginx,

6.修改Windows的host檔案

192.168.15.8 bbs2.test.com

7.測試

http://bbs2.test.com/home/