多項(xiàng)目上線Nginx+Django+uwsgi

本文章的前提是django項(xiàng)目調(diào)試已經(jīng)完成

環(huán)境配置

  • 安裝nginx

    sudo apt-get install nginx

  • 安裝uwsgi

    sudo apt-get install libpython3.6-dev

    pip install uwsgi

    數(shù)據(jù)庫修改字符集(方便插入中文)

修改mysql的配置文件

cd /etc/mysql/mysql.conf.d

sudo cp mysql.cnf mysql.cnf.bak # 修改前先備個(gè)份

sudo vim mysql.cnf

在[mysqld]下增加一句:

character_set_server = utf8

保存并重啟服務(wù)

sudo systemctl restart mysql.service #重啟服務(wù)

Nginx 配置

       include /etc/nginx/sites-enabled/*;
  • 配置文件

    到/etc/nginx/sites-available 下寫配置文件

    cd /etc/nginx/sites-available

    復(fù)制新建一個(gè)站點(diǎn)配置文件

    sudo cp default your.example.com.conf

    sudo vim your.example.com.conf

    開始配置

    server {
        listen 80;
        server_name blog.19950314nina.top;
        charset     utf-8;
        client_max_body_size 75M;
    
        location /static {  # 注意靜態(tài)文件路徑配置 
            alias /home/guoxd/temp/myblog/;
        }
        
        location / {
            include     /etc/nginx/uwsgi_params;  #  uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx默認(rèn)配置目錄同級
            uwsgi_pass  127.0.0.1:8000;  # 端口與uwsgi一致
        }
    }
    

    因?yàn)槭嵌嗾?在這里再寫一個(gè)站點(diǎn)配置

    sudo cp default your.example2.com.conf

    sudo vim your.example2.com.conf

    開始配置

    
    server {
        listen 80;
        server_name bt.19950314nina.top;
        charset     utf-8;
        client_max_body_size 75M;
    
        location /static {  # 注意靜態(tài)文件路徑配置 
            alias /home/guoxd/temp/bt/;
        }
        
        location / {
            include     /etc/nginx/uwsgi_params;  #  uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx默認(rèn)配置目錄同級
            uwsgi_pass  127.0.0.1:8001;  # 端口與uwsgi一致
        }
    }
    

    創(chuàng)建存放靜態(tài)文件的文件夾,先創(chuàng)建好,接下來會(huì)用到

    mkdir -p /home/guoxd/temp/bt

    mkdir -p /home/guoxd/temp/myblog

    到sites-enabled文件夾,創(chuàng)建軟連接,使配置生效

    cd /etc/nginx/sites-enabled

    sudo ln -s /etc/nginx/sites-available/your.example.com.conf your.example.com.conf

    sudo ln -s /etc/nginx/sites-available/your.example2.com.conf your.example2.com.conf

  • Nginx的使用

    sudo nginx -t #對nginx配置是否正確進(jìn)行測試

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful # 輸出這兩句,說明配置沒問題

    sudo nginx -s reload # 重啟服務(wù) 修改完配置,重啟后生效

到這里nginx里的站點(diǎn)配置完成

Uwsgi 配置

我在測試時(shí),兩個(gè)django項(xiàng)目的路徑

/home/guoxd/testpro/project2

/home/guoxd/testpro/project3

  • uwsgi 配置文件

到項(xiàng)目目錄下新建一個(gè) uwsgi.ini 配置文件

cd /home/guoxd/testpro/project2

vim uwsgi.ini

開始配置

[uwsgi]
# 注意  這個(gè)端口 要與 對應(yīng)的站點(diǎn)配置中的端口一致
socket=0.0.0.0:8001
# 項(xiàng)目目錄
chdir=/home/guoxd/testpro/project2
# wsgi 文件
wsgi-file=project2/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log

同理在另外的項(xiàng)目中也進(jìn)行類似的配置, 路徑與端口修改一下即可.

到這里,uwsgi的簡單配置就完成了.

  • uwsgi的使用
uwsgi --ini uwsgi.ini  # 啟動(dòng)
uwsgi --stop uwsgi.pid  # 停止

Django 配置

修改settings文件

#在settings開頭修改
DEBUG=False
allow = ['*']

# 在settings末尾添加
STATIC_ROOT = '/home/guoxd/temp/project2/bt' # 執(zhí)行 collectstatic 時(shí) 文件路徑
STATIC_URL = '/static/'
#把STATICFILES_DIRS注釋掉
'''
STATICFILES_DIRS =[
   os.path.join(BASE_DIR, 'static'),
]
'''

收集靜態(tài)文件

python manage.py collectstatic

收集完成后,將靜態(tài)文件復(fù)制到nginx站點(diǎn)配置時(shí) 對應(yīng)的靜態(tài)文件路徑下

  • 數(shù)據(jù)庫

python manage.py makemigrations

python manage.py migrate

在這里,記錄一個(gè)mysql 導(dǎo)出和導(dǎo)入的命令

mysqldump -u(username) -p(password) (database_name) (something).sql #導(dǎo)出sql數(shù)據(jù)庫

示例: mysqldump -uroot -p123 bt bt.sql

mysql -u(username) -p(password) --database (database_name) < (something).sql # 導(dǎo)入數(shù)據(jù)庫

示例:mysql -uroot -p123 --database bt < bt.sql # 導(dǎo)入數(shù)據(jù)庫

啟動(dòng)

在django項(xiàng)目下 啟動(dòng)

uwsgi --ini uwsgi.ini
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容