下面是完整的攻略。首先,需要安装flup和Nginx,然后配置Nginx并使用flup搭建Python环境。
安装flup:
$ pip install flup
安装Nginx:
$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo vim /etc/nginx/sites-available/default
在该文件中,查找以下内容并修改为:
server {
listen 80;
server_name your-domain.com;
charset utf-8;
access_log /var/log/nginx/access.log;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
$ sudo systemctl stop nginx.service
$ sudo systemctl start nginx.service
现在你的Nginx服务器应该已经监听80端口,可以通过HTTP访问Web应用程序了。
#!/usr/bin/python
print "Content-type: text/html\n\n"
print "<html><head><title>Hello, World!</title></head>"
print "<body><p>Hello, World!</p></body></html>"
$ chmod +x hello.py
location /hello {
root /path/to/your/application;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /path/to/your/application/hello.py;
}
}
$ sudo apt-get install libnginx-mod-http-fastcgi
示例一使用CGI方式配置了Nginx服务器来托管Python脚本。
#!/usr/bin/python
import sys
sys.path.insert(0, "/path/to/your/application")
from flup.server.fcgi import WSGIServer
def app(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return ["<html><head><title>Hello, World!</title></head><body><h1>Hello, World!</h1></body></html>"]
WSGIServer(app).run()
$ python /path/to/your/application/hello_fastcgi.py
现在你的Python应用程序已启动,可以在localhost:8000/hello_fastcgi地址下访问。
尽管Python应用程序可以工作,但我们在远程访问时希望使用Nginx,因此,我们需要配置Nginx。
在Nginx配置文件中添加以下内容:
location /hello_fastcgi {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8000;
}
示例二使用FastCGI方式配置了Nginx服务器来托管Python脚本。
现在你的Nginx服务器已经配置好,可以使用flup轻松地为Python脚本提供Web服务了。
本文链接:http://task.lmcjl.com/news/15559.html