国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx + Flask + Flup:完整演示

hsluoyz / 3521人閱讀

摘要:最近想學點,發現大家一般都是自己編譯。安裝前,可以用查看各個安裝包支持的模塊。權衡之后,發現最佳選擇為,也就是標準版。需要安裝以支持注意啟動時,綁定的文件。這個文件后續配置時要用到,它是和通信的橋梁。訪問,不出意外即可看到另請參閱

最近想學點 Nginx,發現大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經夠用了,所以姑且先用起來再說。

安裝 Nginx

Ubuntu 提供了四種 nginx 的安裝包,功能由簡到繁依次為:nginx-light,nginx-core,nginx-fullnginx-extras。

安裝前,可以用 aptitude show 查看各個安裝包支持的模塊。比如 nginx-extrasnginx-full 多了 perllua 支持。

權衡之后,發現最佳選擇為 nginx-full,也就是「標準版」。

$ sudo apt-get install nginx-full

nginx-full:
     nginx-common (= 1.9.3-1ubuntu1), libc6 (>= 2.14), libexpat1 (>= 2.0.1), libgd3 (>=
     2.1.0~alpha~), libgeoip1, libpam0g (>= 0.99.7.1), libpcre3, libssl1.0.0 (>= 1.0.2~beta3),
     libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), zlib1g (>= 1:1.2.0)

如果不清楚到底安裝了哪些文件,可以通過 dpkg --listfiles 命令查看:

adam@t450s:~/study/nginx$ dpkg --listfiles nginx-full
/.
/usr
/usr/sbin
/usr/sbin/nginx
/usr/share
/usr/share/doc
/usr/share/doc/nginx-full
/usr/share/doc/nginx-full/copyright
/usr/share/doc/nginx-full/changelog.Debian.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/nginx.8.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/nginx-full

可以順帶安裝一下文檔:

$ sudo apt-get install nginx-doc
Nginx 命令

重啟等操作可以通過 /etc/init.d/nginx 執行:

$ sudo /etc/init.d/nginx restart

這是一個 shell 腳本(/etc/init.d/ 目錄下都是 shell 腳本),有如下命令可用:

configtest    reload        rotate        status        upgrade
force-reload  restart       start         stop

當然,直接用 /usr/sbin/nginx 也行,通過 -snginx 進程發送信號。

用 Flask 寫一個應用

Flask 是 Python 的微型 Web 框架,之前在文章里有過介紹,現在寫一個最簡單的應用。

HOME 下建一個項目目錄:

adam@t450s:~$ mkdir flaskr

flaskr 目錄下創建文件 app.py,內容為:

# encoding: utf-8

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

再創建文件 flaskr.fcgi,內容為:

#!/usr/bin/python

from flup.server.fcgi import WSGIServer
from app import app

if __name__ == "__main__":
    WSGIServer(app, bindAddress="/tmp/flaskr-fcgi.sock").run()

這就是 FastCGI wrapper。需要安裝 Flup 以支持 FastCGI:

$ sudo pip install flup

注意啟動 WSGI Server 時,綁定的 socket 文件。這個文件后續配置 Nginx 時要用到,它是 Flup 和 Nginx 通信的橋梁。

flaskr.fcgi 文件添加執行權限,不加也行,反正它就是個 Python 文件。

$ chmod +x flaskr.fcgi
配置 Nginx

簡單起見,直接編輯 nginx.conf 文件:

$ sudo vim /etc/nginx/nginx.conf

添加一個 server 配置到 http 模塊:

http {
    server {
        listen 80;
        server_name localhost;

        location / {
            try_files $uri @flaskr;
        }
        location @flaskr {
            include fastcgi_params;
            fastcgi_param SCRIPT_NAME "";
            fastcgi_param PATH_INFO $fastcgi_script_name;
            fastcgi_pass unix:/tmp/flaskr-fcgi.sock;
        }
    }
}

最后一行指定了 Nginx 和 FastCGI 通信的 socket 文件:

fastcgi_pass unix:/tmp/flaskr-fcgi.sock;
運行程序

啟動 FastCGI wrapper:

adam@t450s:~/flaskr$ ./flaskr.fcgi 

或者:

adam@t450s:~/flaskr$ python flaskr.fcgi 

切換到 root 用戶,修改 socket 文件的權限:

adam@t450s:/tmp$ sudo su
[sudo] adam 的密碼: 
root@t450s:/tmp# chmod 777 flaskr-fcgi.sock

否則 Nginx 無權訪問這個 socket 文件。查看 /var/log/nginx/error.log 的話,會看到如下錯誤:

2015/11/09 22:23:21 [crit] 15357#15357: *1 connect() to unix:/tmp/flaskr-fcgi.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/flaskr-fcgi.sock:", host: "localhost"

修改 socket 文件的權限后,Nginx 好像并不需要重啟。

訪問 http://localhost/,不出意外即可看到 "Hello World!"

另請參閱:http://segmentfault.com/a/1190000002652109

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44188.html

相關文章

  • Nginx + Flask + Flup完整演示

    摘要:最近想學點,發現大家一般都是自己編譯。安裝前,可以用查看各個安裝包支持的模塊。權衡之后,發現最佳選擇為,也就是標準版。需要安裝以支持注意啟動時,綁定的文件。這個文件后續配置時要用到,它是和通信的橋梁。訪問,不出意外即可看到另請參閱 最近想學點 Nginx,發現大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經夠用了,所以姑且先用起來再說。 安裝 Ngin...

    張遷 評論0 收藏0
  • 在Mac上使用Nginx和FastCGI部署Flask應用

    摘要:最近在學習,本文介紹一下如何部署開發的應用,同時也學習一下的使用,這只是在上的一個實驗。應用這里使用的應用就是官方的文檔中給出的。安裝使用安裝會自動安裝及其依賴的程序。啟動完成后,訪問訪問時出現了錯誤,這是因為我們的應用還沒有啟動。 最近在學習Flask,本文介紹一下如何部署Flask開發的應用,同時也學習一下Nginx的使用,這只是在Mac上的一個實驗。 應用 這里使用的應用就是...

    daryl 評論0 收藏0
  • Python Flask 圖床(TUSHE.ORG)開源

    摘要:演示圖社是基于的圖床和圖片瀏覽網站源碼,也可以用作套圖網站。網站采用作為數據庫,圖片也儲存于。特點注冊用戶可以認領未注冊用戶的圖片,進行相關信息編輯。部署要求相關的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...

    wums 評論0 收藏0
  • Python Flask 圖床(TUSHE.ORG)開源

    摘要:演示圖社是基于的圖床和圖片瀏覽網站源碼,也可以用作套圖網站。網站采用作為數據庫,圖片也儲存于。特點注冊用戶可以認領未注冊用戶的圖片,進行相關信息編輯。部署要求相關的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...

    Achilles 評論0 收藏0

發表評論

0條評論

hsluoyz

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<