国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

2019-11-25 17:34:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

使用HomeBrew安裝Nginx:

$ brew install nginx

HomeBrew會(huì)自動(dòng)安裝Nginx及其依賴(lài)的程序。在我的電腦上安裝的是Nginx 1.6.2,配置文件的路徑是/usr/local/etc/nginx/nginx.conf。

啟動(dòng)Nginx的命令:

$ nginx

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

201552143836668.jpg (600×358)

配置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;  }}

重新啟動(dòng)Nginx:

$ nginx -s quit$ sudo nginx

因?yàn)槭褂昧?0端口,啟動(dòng)Nginx時(shí)需要加上sudo。

啟動(dòng)完成后,訪(fǎng)問(wèn)localhost:

201552143905542.jpg (600×322)

訪(fǎng)問(wèn)時(shí)出現(xiàn)了錯(cuò)誤,這是因?yàn)槲覀兊膽?yīng)用還沒(méi)有啟動(dòng)。
FastCGI Server

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

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

$ pip install flup

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

#!/usr/bin/pythonfrom flup.server.fcgi import WSGIServerfrom flaskr import appif __name__ == '__main__':  WSGIServer(app, bindAddress='/tmp/flaskr-fcgi.sock').run()

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

$ chmod +x flaskr.fcgi

手動(dòng)啟動(dòng)server:

$ screen$ ./flaskr.fcgi

使用screen使server在后臺(tái)運(yùn)行,或者:

$ nohup ./flaskr.fcgi &

再次訪(fǎng)問(wèn)localhost就可以看到我們的應(yīng)用了。
遇到的問(wèn)題

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

復(fù)制代碼 代碼如下:
user wzy;

啟動(dòng)的時(shí)候Nginx報(bào)錯(cuò):

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

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

復(fù)制代碼 代碼如下:
user wzy wheel;

再次啟動(dòng)Nginx后一切正常了。

Nginx配置項(xiàng)user的使用方法:

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

如果忽略group,Nginx會(huì)使用和user名稱(chēng)一樣的用戶(hù)組,例如我設(shè)置user wzy,那么Nginx啟動(dòng)的時(shí)候會(huì)去查找用戶(hù)組wzy,我的電腦上沒(méi)有這個(gè)用戶(hù)組,所以Nginx會(huì)報(bào)錯(cuò)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵武市| 视频| 石棉县| 布拖县| 宜良县| 万州区| 靖江市| 六枝特区| 扎兰屯市| 柳河县| 久治县| 讷河市| 象山县| 红河县| 剑阁县| 临沧市| 汕头市| 海阳市| 衡水市| 梅州市| 普安县| 饶河县| 惠州市| 丹巴县| 专栏| 台东县| 嫩江县| 浦江县| 泰来县| 正镶白旗| 射阳县| 宜都市| 湘潭县| 马龙县| 上犹县| 应用必备| 榆树市| 襄樊市| 永定县| 利川市| 郎溪县|