首頁 > 後端開發 > php教程 > Ubuntu 1404 設定 Nginx + uWSGI 託管 virtualenv 下 Flask 應用程式的一點注意事項

Ubuntu 1404 設定 Nginx + uWSGI 託管 virtualenv 下 Flask 應用程式的一點注意事項

WBOY
發布: 2016-07-29 08:52:21
原創
1089 人瀏覽過

標題很長,本文內容很簡單。在現在的 Python 開發中,虛擬環境是必不可少的,但有時候,虛擬環境會給我們帶來一些不必要的麻煩或說坑,例如今天要談到的 Flask 應用程式託管的問題。

Nginx + uWSGI 可以說是Python Web 專案託管的不二之選,當然,如果只是自己開發測試,或者應用在訪問量很小的應用上,Gunicorn 甚至Web 框架自帶的web server 也許就夠了,但是我們逃不開會碰到這對王者組合的情況,今天我就遇到了這樣的坑。在依照官方文件分別配置 Nginx 和 uWSGI 後,使用 uwsgi 的命令語句啟動,沒有任何問題,但是嘗試使用 ini 配置啟動 uWSGI 後,則會遇到一直報 502 bad gateway 的錯誤。

一番排查後——排查過程不表——發現問題所在,我的uWSGI 安裝在了專案的virtualenv 目錄中,然而ini 配置文件卻沒有配置虛擬環境目錄,而網上現有的博客教程裡的ini 配置都是沒有提到這個問題的,所以,我們加上虛擬環境的配置,並且注意,最好加上plugin = python 這一條配置,當然了,這個需要提前安裝,具體如何安裝,不是本文重點,暫不贅述了。

所以,我最終的 ini 設定檔內容如下:

<code><span>[uwsgi]</span><span>plugins = <span>python</span></span><span>vhost = <span><span>true</span></span></span><span>chdir = <span>/home/k/Documents/demo</span></span><span>venv = <span>/home/k/Documents/demo/venv</span></span>#python module to import
<span>app = <span>main</span></span><span>module = <span>%(app)</span></span>#socket file's location
<span>socket = <span>/home/k/Documents/demo/%n.sock</span></span>#permissions for the socket file
<span>chmod-socket    = <span><span>666</span></span></span>#the variable that holds a flask application inside the module imported at line #6
<span>callable = <span>app</span></span>#location of log files
<span>logto = <span>/home/k/Documents/demo/%n.log</span></span><span>processes = <span><span>4</span></span></span><span>threads = <span><span>2</span></span></span></code>
登入後複製

而我的專案目錄結構則是:

<code>demo/
|____venv/
|____main<span>.py</span><span># 这个是应用的启动文件(对应 ini 配置中的 app)</span>
|____uwsgi<span>.ini</span>
|____uwsgi<span>.sock</span>
|____uwsgi<span>.log</span>
|____access<span>.log</span><span># 这个是 Nginx 中的 access 日志配置</span>
|____error<span>.log</span><span># 这个是 Nginx 中的 error 日志配置</span></code>
登入後複製
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了Ubuntu 1404 配置 Nginx + uWSGI 託管 virtualenv 下 Flask 應用的一點注意事項,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板