Nginx系列-7.配置Nginx使用uwsgi支持web.py框架
阿新 • • 發佈:2018-06-10
Linux Nginx web.py uwsgi Nginx系列-7.配置Nginx使用uwsgi支持web.py框架
目錄 - Nginx系列
Nginx系列-1.Linux下安裝Nginx
Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架構
Nginx系列-3.配置Nginx虛擬主機
Nginx系列-4.Nginx日誌配置及日誌切割
Nginx系列-5.配置Nginx的防盜鏈
Nginx系列-6.配置Nginx的HTTPS
Nginx系列-7.配置Nginx使用uwsgi支持web.py框架
Nginx系列-8.配置Nginx+Apache實現動靜分離
Nginx系列-9.配置NFS實現Nginx實現動靜分離Nginx系列-10.采用Nginx搭建正向代理服務
Nginx系列-11.配置Nginx反向代理和負載均衡
實驗環境
一臺最小化的 CentOS 7.3 虛擬機
ip: 192.168.204.133
一、安裝基本環境
-
安裝基本環境
yum install -y epel* yum install -y nginx python-pip python-devel pcre-devel libxml2-devel gcc vim tree psmisc
pip安裝uwsgi時需要
gcc
uwsgi進程管理時需要psmisc
-
安裝python庫文件
pip install web.py pip install uwsgi
-
創建網站根目錄
mkdir /var/wwwroot cd /var/wwwroot
-
編寫測試網頁
創建並編輯/var/wwwroot/main.py
#!/usr/bin/python #coding=utf-8 import web urls = ( ‘/(.*)‘, ‘hello‘ ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = ‘World‘ return ‘Hello, ‘ + name + ‘!‘ if __name__ == "__main__": app.run() # 使用nginx作web服務時,註意添加下面這句話 application = app.wsgifunc()
-
對
main.py
添加可執行權限chmod +x /var/wwwroot/main.py
- 關閉防火墻
setenforce 0 systemctl stop firewalld systemctl disable firewalld
二、配置nginx和uwsgi
-
修改nginx的配置文件
修改server
下的root
為網站根目錄
修改location
中的配置如下location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; #此套接字為uwsgi監聽的地址和端口 uwsgi_param UWSGI_CHDIR $document_root; #此處代表網站根目錄 uwsgi_param UWSGI_SCRIPT main; #此處為應用的入口文件 }
-
啟動
nginx
systemctl start nginx netstat -anpt | grep nginx
-
配置
uwsgi
創建並編輯/ect/uwsgi.ini
[uwsgi] socket = 127.0.0.1:9090 workers = 4
-
啟動
uwsgi
開啟一個 新終端! 新終端!! 新終端!!! 執行以下命令uwsgi --ini /etc/uwsgi.ini 2>&1 & exit
-
回到之前的終端,查看
uwsgi
是否正常啟動netstat -antp | grep -E "9090|uwsgi"
- 停止
uwsgi
killall uwsgi netstat -antp | grep -E "9090|uwsgi"
三、測試
- 在宿主機訪問
四、一鍵部署腳本
#!/bin/bash
# 關閉防火墻
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
# 安裝基礎軟件包
yum install -y epel*
yum install -y nginx python-pip python-devel pcre-devel libxml2-devel gcc vim tree psmisc
# 安裝python模塊
pip install web.py
pip install uwsgi
# 建立網站根目錄
mkdir /var/wwwroot
cd /var/wwwroot
# 建立測試網頁
echo -e "#!/usr/bin/python
#coding=utf-8
import web
urls = (
‘/(.*)‘, ‘hello‘
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
if not name:
name = ‘World‘
return ‘Hello, ‘ + name + ‘!‘
if __name__ == \"__main__\":
app.run()
# 使用nginx作web服務時,註意添加下面這句話
application = app.wsgifunc()
" > /var/wwwroot/main.py
# 添加可執行權限
chmod +x /var/wwwroot/main.py
# 修改nginx配置文件
NGINX_CONF_PATH=/etc/nginx/nginx.conf
sed -i ‘s/^[^#].*root.*/ root \/var\/wwwroot;/g‘ ${NGINX_CONF_PATH}
sed -i "47 a \ include uwsgi_params;" ${NGINX_CONF_PATH}
sed -i "48 a \ uwsgi_pass 127.0.0.1:9090;" ${NGINX_CONF_PATH}
sed -i "49 a \ uwsgi_param UWSGI_CHDIR \$document_root;" ${NGINX_CONF_PATH}
sed -i "50 a \ uwsgi_param UWSGI_SCRIPT main;
" ${NGINX_CONF_PATH}
# 啟動nginx
systemctl start nginx
netstat -anpt | grep nginx
# 配置uwsgi
echo -e "[uwsgi]
socket = 127.0.0.1:9090
workers = 4
" > /etc/uwsgi.ini
# 啟動uwsgi
echo -e "uwsgi starting..."
uwsgi --ini /etc/uwsgi.ini 2>&1 &
Nginx系列-7.配置Nginx使用uwsgi支持web.py框架