摘要:最近想学点,发现大家一般都是自己编译。安装前,可以用查看各个安装包支持的模块。权衡之后,发现最佳选择为,也就是标准版。需要安装以支持注意启动时,绑定的文件。这个文件后续配置时要用到,它是和通信的桥梁。访问,不出意外即可看到另请参阅
最近想学点 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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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 的图床和图片浏...
阅读 3845·2021-07-28 18:10
阅读 2555·2019-08-30 15:44
阅读 1061·2019-08-30 14:07
阅读 3416·2019-08-29 17:20
阅读 1558·2019-08-26 18:35
阅读 3514·2019-08-26 13:42
阅读 1794·2019-08-26 11:58
阅读 1545·2019-08-23 18:33