Debian8 + Flask + Nginx + uWSGI + uWSGI Emperor 基本配置文件注意事項

Debian8 + Flask + Nginx + uWSGI + uWSGI Emperor 基本配置文件注意事項

Debian8 使用 uWSGI Emperor Debina7 是不同的。相關問題,能夠直接查看本篇文章的第4步。html

注意:本篇文章是在服務器中用 root 帳號執行的。文章主要講相關配置文件,安裝方法請自尋。
-----更新------
2017年9月8日更新:更正運行服務的代碼python


1.uWSGI 配置文件 /home/luejiao.com/luejiao_uwsgi.ini

[uwsgi]
# 指向網站目錄
base = /home/luejiao.com

# 啓動文件
wsgi-file = run.py

module = app

# 虛擬目錄
home = %(base)/flask

# 按字面意思是python的環境變量路徑,寫的是網站根目錄
pythonpath = %(base)

#socket文件的路徑 socket file's location
socket = /home/luejiao.com/tmp/%n.sock

#pchmod-socket的權限 ermissions for the socket file
chmod-socket = 644

#the variable that holds a flask application inside the module imported at line #6
callable = app

#日誌文件的路徑 location of log files
logto = /wwwlogs/uwsgi/%n.log 

# 處理器數
processes = 4

# 線程數
1threads = 2

# 修改代碼時,自動重啓uwsgi服務
python-autoreload=1

2.新建保存日誌的文件夾,並賦權

mkdir -p /wwwlogs/uwsgi
chown -R www:www /wwwlogs/uwsgi

3.在網站的 nginx conf 配置文件中,添加:

location / {
    try_files $uri @yourapplication;
    }
  location @yourapplication {
        include uwsgi_params;
        uwsgi_pass unix:/home/luejiao.com/tmp/luejiao_uwsgi.sock;# 這裏注意替換成本身的socket文件路徑
    }

下面是重頭戲,debian8debian7 在配置 uWSGI Emperor 是不同的!!!
debian7 是把配置文件放到 /etc/init/uwsgi.conf,而在 debian8 中,是放到 /etc/systemd/system/ 中的。
本文章是講 debian8 的環境下配置 uWSGI Emperor官方對應文檔nginx

4.新建/etc/systemd/system/emperor.uwsgi.service文件,代碼以下:

[Unit]
Description=uWSGI Emperor
After=syslog.target

[Service]
#uwsgi 服務的路徑,以及須要啓動的 ini 文件路徑,根據本身的實際狀況進行修改
ExecStart=/usr/local/bin/uwsgi --ini /etc/uwsgi/emperor.ini
# Requires systemd version 211 or newer
RuntimeDirectory=uwsgi
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

5.上述代碼中,/etc/uwsgi/emperor.ini 文件的代碼以下:

[uwsgi]
emperor = /etc/uwsgi/vassals
uid = www
gid = www

6.把網站的 uwsgi.ini 文件要給個軟鏈,加到 /etc/uwsgi/vassals/ 文件夾中:

mkdir /etc/uwsgi && mkdir /etc/uwsgi/vassals
ln -s /home/luejiao.com/luejiao_uwsgi.ini /etc/uwsgi/vassals

7.在第5步中的文件夾中,設置了文件全部者是 www:www,咱們要給對應的文件夾和文件作全部者權限修改(這一步根據實際狀況來判斷是否須要):

chown -R www:www /home/luejiao.com
chown -R www:www /var/log/uwsgi/

8.運行服務、中止服務、狀態查詢:

debian7 開啓服務的代碼是:service uwsgi start
debian8 的代碼是flask

systemctl start emperor.uwsgi.service
systemctl stop emperor.uwsgi.service
systemctl status emperor.uwsgi.service

End!

相關文章
相關標籤/搜索