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

資訊專欄INFORMATION COLUMN

在Mac上使用Nginx和FastCGI部署Flask應(yīng)用

daryl / 1887人閱讀

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

最近在學(xué)習(xí)Flask,本文介紹一下如何部署Flask開發(fā)的應(yīng)用,同時也學(xué)習(xí)一下Nginx的使用,這只是在Mac上的一個實驗。

應(yīng)用

這里使用的應(yīng)用就是官方的文檔中給出的Flaskr。

安裝Nginx

使用HomeBrew安裝Nginx:

shell$ brew install nginx

HomeBrew會自動安裝Nginx及其依賴的程序。在我的電腦上安裝的是Nginx 1.6.2,配置文件的路徑是/usr/local/etc/nginx/nginx.conf

啟動Nginx的命令:

shell$ nginx

Nginx的默認(rèn)端口是8080,用瀏覽器打開localhost:8080,顯示如下所示的頁面說明Nginx已經(jīng)工作了。

配置Nginx

修改Nginx的配置文件:

server {
    listen 80;
    server_name localhost;
    charset utf-8;

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

重新啟動Nginx:

shell$ nginx -s quit
$ sudo nginx

因為使用了80端口,啟動Nginx時需要加上sudo

啟動完成后,訪問localhost

訪問時出現(xiàn)了錯誤,這是因為我們的應(yīng)用還沒有啟動。

FastCGI Server

Nginx是一個靜態(tài)WEB服務(wù)器,不能直接運行我們的Python應(yīng)用,當(dāng)Nginx接受到請求時,會通過FastCGI轉(zhuǎn)發(fā)給我們的應(yīng)用,應(yīng)用是運行在FastCGI Server上的,這個server接收Nginx的請求并調(diào)用我們的程序,將結(jié)果返回給Nginx,Nginx再將結(jié)果返回給用戶。

我們要使用的FastCGI Server是flup,安裝方法:

shell$ pip install flup

在應(yīng)用目錄下創(chuàng)建一個fcgi文件,例如flaskr.fcgi:

Python#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from flaskr import app

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

同時給fcgi文件可執(zhí)行的權(quán)限:

shell$ chmod +x flaskr.fcgi

手動啟動server:

shell$ screen
$ ./flaskr.fcgi

使用screen使server在后臺運行,或者:

shell$ nohup ./flaskr.fcgi &

再次訪問localhost就可以看到我們的應(yīng)用了。

遇到的問題

第一次運行FastCGI server后,任然無法訪問,查看Nginx的日志后發(fā)現(xiàn)Nginx服務(wù)器沒有權(quán)限訪問socket文件,修改nginx.conf添加user配置:

user wzy;

啟動的時候Nginx報錯:

nginx: [emerg] getgrnam("wzy") failed in /usr/local/etc/nginx/nginx.conf:2

Google一下后發(fā)現(xiàn)要加上用戶組才行,改成這樣:

user wzy wheel;

再次啟動Nginx后一切正常了。

Nginx配置項user的使用方法:

Syntax: user user [group];
Default: user nobody nobody;

如果忽略group,Nginx會使用和user名稱一樣的用戶組,例如我設(shè)置user wzy,那么Nginx啟動的時候會去查找用戶組wzy,我的電腦上沒有這個用戶組,所以Nginx會報錯。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37520.html

相關(guān)文章

  • Nginx + Flask + Flup:完整演示

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

    張遷 評論0 收藏0
  • Nginx + Flask + Flup:完整演示

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

    hsluoyz 評論0 收藏0
  • FlaskWindows環(huán)境下的部署

    摘要:實際上還是單進程阻塞運行的,即使在中配置了也無法實現(xiàn)多線程使用。多線程情況配置啟用多線程在中配置兩條測試路由先用瀏覽器訪問隨即立刻訪問可見兩次訪問是不同的線程處理的,不會出現(xiàn)堵塞的情況。 背景 由于目前在用的Flask項目涉及到一部分依賴Windows的處理,還無法遷移到linux平臺,那么在windows環(huán)境下,要怎么部署呢? 思路 根據(jù)Flask官網(wǎng)介紹,由于Flask內(nèi)置的服務(wù)器...

    ermaoL 評論0 收藏0
  • FlaskWindows環(huán)境下的部署

    摘要:實際上還是單進程阻塞運行的,即使在中配置了也無法實現(xiàn)多線程使用。多線程情況配置啟用多線程在中配置兩條測試路由先用瀏覽器訪問隨即立刻訪問可見兩次訪問是不同的線程處理的,不會出現(xiàn)堵塞的情況。 背景 由于目前在用的Flask項目涉及到一部分依賴Windows的處理,還無法遷移到linux平臺,那么在windows環(huán)境下,要怎么部署呢? 思路 根據(jù)Flask官網(wǎng)介紹,由于Flask內(nèi)置的服務(wù)器...

    魏憲會 評論0 收藏0

發(fā)表評論

0條評論

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