摘要:最近想學點,發現大家一般都是自己編譯。安裝前,可以用查看各個安裝包支持的模塊。權衡之后,發現最佳選擇為,也就是標準版。需要安裝以支持注意啟動時,綁定的文件。這個文件后續配置時要用到,它是和通信的橋梁。訪問,不出意外即可看到另請參閱
最近想學點 Nginx,發現大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經夠用了,所以姑且先用起來再說。
安裝 NginxUbuntu 提供了四種 nginx 的安裝包,功能由簡到繁依次為:nginx-light,nginx-core,nginx-full,nginx-extras。
安裝前,可以用 aptitude show 查看各個安裝包支持的模塊。比如 nginx-extras 比 nginx-full 多了 perl 和 lua 支持。
權衡之后,發現最佳選擇為 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-docNginx 命令
重啟等操作可以通過 /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 也行,通過 -s 給 nginx 進程發送信號。
用 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,發現大家一般都是自己編譯。自己編譯也不難,但是考慮到 Ubuntu 自帶的安裝包就已經夠用了,所以姑且先用起來再說。 安裝 Ngin...
摘要:最近在學習,本文介紹一下如何部署開發的應用,同時也學習一下的使用,這只是在上的一個實驗。應用這里使用的應用就是官方的文檔中給出的。安裝使用安裝會自動安裝及其依賴的程序。啟動完成后,訪問訪問時出現了錯誤,這是因為我們的應用還沒有啟動。 最近在學習Flask,本文介紹一下如何部署Flask開發的應用,同時也學習一下Nginx的使用,這只是在Mac上的一個實驗。 應用 這里使用的應用就是...
摘要:演示圖社是基于的圖床和圖片瀏覽網站源碼,也可以用作套圖網站。網站采用作為數據庫,圖片也儲存于。特點注冊用戶可以認領未注冊用戶的圖片,進行相關信息編輯。部署要求相關的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...
摘要:演示圖社是基于的圖床和圖片瀏覽網站源碼,也可以用作套圖網站。網站采用作為數據庫,圖片也儲存于。特點注冊用戶可以認領未注冊用戶的圖片,進行相關信息編輯。部署要求相關的支持見部署方法提供了配合的配置文件。 TUSHE 演示:http://tushe.org GitHub:https://github.com/ericls/tushe 圖社(TUSHE)是基于 FLask 的圖床和圖片瀏...
閱讀 3868·2021-07-28 18:10
閱讀 2577·2019-08-30 15:44
閱讀 1083·2019-08-30 14:07
閱讀 3455·2019-08-29 17:20
閱讀 1577·2019-08-26 18:35
閱讀 3533·2019-08-26 13:42
閱讀 1816·2019-08-26 11:58
閱讀 1585·2019-08-23 18:33