摘要:最近想學(xué)點(diǎn),發(fā)現(xiàn)大家一般都是自己編譯。安裝前,可以用查看各個(gè)安裝包支持的模塊。權(quán)衡之后,發(fā)現(xiàn)最佳選擇為,也就是標(biāo)準(zhǔn)版。需要安裝以支持注意啟動(dòng)時(shí),綁定的文件。這個(gè)文件后續(xù)配置時(shí)要用到,它是和通信的橋梁。訪問(wèn),不出意外即可看到另請(qǐng)參閱
最近想學(xué)點(diǎn) Nginx,發(fā)現(xiàn)大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經(jīng)夠用了,所以姑且先用起來(lái)再說(shuō)。
安裝 NginxUbuntu 提供了四種 nginx 的安裝包,功能由簡(jiǎn)到繁依次為:nginx-light,nginx-core,nginx-full,nginx-extras。
安裝前,可以用 aptitude show 查看各個(gè)安裝包支持的模塊。比如 nginx-extras 比 nginx-full 多了 perl 和 lua 支持。
權(quán)衡之后,發(fā)現(xiàn)最佳選擇為 nginx-full,也就是「標(biāo)準(zhǔn)版」。
$ 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)
如果不清楚到底安裝了哪些文件,可以通過(guò) 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-docNginx 命令
重啟等操作可以通過(guò) /etc/init.d/nginx 執(zhí)行:
$ sudo /etc/init.d/nginx restart
這是一個(gè) shell 腳本(/etc/init.d/ 目錄下都是 shell 腳本),有如下命令可用:
configtest reload rotate status upgrade force-reload restart start stop
當(dāng)然,直接用 /usr/sbin/nginx 也行,通過(guò) -s 給 nginx 進(jìn)程發(fā)送信號(hào)。
用 Flask 寫一個(gè)應(yīng)用Flask 是 Python 的微型 Web 框架,之前在文章里有過(guò)介紹,現(xiàn)在寫一個(gè)最簡(jiǎn)單的應(yīng)用。
在 HOME 下建一個(gè)項(xiàng)目目錄:
adam@t450s:~$ mkdir flaskr
在 flaskr 目錄下創(chuàng)建文件 app.py,內(nèi)容為:
# encoding: utf-8 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!"
再創(chuàng)建文件 flaskr.fcgi,內(nèi)容為:
#!/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
注意啟動(dòng) WSGI Server 時(shí),綁定的 socket 文件。這個(gè)文件后續(xù)配置 Nginx 時(shí)要用到,它是 Flup 和 Nginx 通信的橋梁。
為 flaskr.fcgi 文件添加執(zhí)行權(quán)限,不加也行,反正它就是個(gè) Python 文件。
$ chmod +x flaskr.fcgi配置 Nginx
簡(jiǎn)單起見,直接編輯 nginx.conf 文件:
$ sudo vim /etc/nginx/nginx.conf
添加一個(gè) 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;運(yùn)行程序
啟動(dòng) FastCGI wrapper:
adam@t450s:~/flaskr$ ./flaskr.fcgi
或者:
adam@t450s:~/flaskr$ python flaskr.fcgi
切換到 root 用戶,修改 socket 文件的權(quán)限:
adam@t450s:/tmp$ sudo su [sudo] adam 的密碼: root@t450s:/tmp# chmod 777 flaskr-fcgi.sock
否則 Nginx 無(wú)權(quán)訪問(wèn)這個(gè) socket 文件。查看 /var/log/nginx/error.log 的話,會(huì)看到如下錯(cuò)誤:
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 文件的權(quán)限后,Nginx 好像并不需要重啟。
訪問(wèn) http://localhost/,不出意外即可看到 "Hello World!"
另請(qǐng)參閱:http://segmentfault.com/a/1190000002652109
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/39222.html
摘要:最近想學(xué)點(diǎn),發(fā)現(xiàn)大家一般都是自己編譯。安裝前,可以用查看各個(gè)安裝包支持的模塊。權(quán)衡之后,發(fā)現(xiàn)最佳選擇為,也就是標(biāo)準(zhǔn)版。需要安裝以支持注意啟動(dòng)時(shí),綁定的文件。這個(gè)文件后續(xù)配置時(shí)要用到,它是和通信的橋梁。訪問(wèn),不出意外即可看到另請(qǐng)參閱 最近想學(xué)點(diǎn) Nginx,發(fā)現(xiàn)大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經(jīng)夠用了,所以姑且先用起來(lái)再說(shuō)。 安裝 Ngin...
摘要:最近在學(xué)習(xí),本文介紹一下如何部署開發(fā)的應(yīng)用,同時(shí)也學(xué)習(xí)一下的使用,這只是在上的一個(gè)實(shí)驗(yàn)。應(yīng)用這里使用的應(yīng)用就是官方的文檔中給出的。安裝使用安裝會(huì)自動(dòng)安裝及其依賴的程序。啟動(dòng)完成后,訪問(wèn)訪問(wèn)時(shí)出現(xiàn)了錯(cuò)誤,這是因?yàn)槲覀兊膽?yīng)用還沒(méi)有啟動(dòng)。 最近在學(xué)習(xí)Flask,本文介紹一下如何部署Flask開發(fā)的應(yīng)用,同時(shí)也學(xué)習(xí)一下Nginx的使用,這只是在Mac上的一個(gè)實(shí)驗(yàn)。 應(yīng)用 這里使用的應(yīng)用就是...
摘要:演示圖社是基于的圖床和圖片瀏覽網(wǎng)站源碼,也可以用作套圖網(wǎng)站。網(wǎng)站采用作為數(shù)據(jù)庫(kù),圖片也儲(chǔ)存于。特點(diǎn)注冊(cè)用戶可以認(rèn)領(lǐng)未注冊(cè)用戶的圖片,進(jìn)行相關(guān)信息編輯。部署要求相關(guān)的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...
摘要:演示圖社是基于的圖床和圖片瀏覽網(wǎng)站源碼,也可以用作套圖網(wǎng)站。網(wǎng)站采用作為數(shù)據(jù)庫(kù),圖片也儲(chǔ)存于。特點(diǎn)注冊(cè)用戶可以認(rèn)領(lǐng)未注冊(cè)用戶的圖片,進(jìn)行相關(guān)信息編輯。部署要求相關(guān)的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...
閱讀 3037·2021-11-24 09:38
閱讀 3567·2021-11-23 09:51
閱讀 1121·2021-09-09 11:52
閱讀 4140·2021-08-11 11:18
閱讀 1185·2019-08-30 14:05
閱讀 3283·2019-08-30 11:23
閱讀 1840·2019-08-29 17:02
閱讀 1186·2019-08-26 13:49