標籤:global lob down thread cat icon 否則 dir return
遇坑的同鞋可以留意一下
作業系統:Centos7
準備檔案:
Python-2.7.13.tgz
:https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
nginx-1.12.0.tar.gz
:http://nginx.org/download/nginx-1.12.0.tar.gz
uwsgi-2.0.15.tar.gz
:https://projects.unbit.it/downloads/uwsgi-2.0.15.tar.gz
1、安裝Python
configure注意帶參數--with-zlib,否則uwsgi會報錯
tar -zxvf Python-2.7.13.tgz
cd Python-2.7.13
./configure --with-zlib
make
make install
make clean
python --version 可以查看版本
修改版本會導致一些小問題,可以嘗試修改#!/usr/bin/python為#!/usr/bin/python2.7
2、安裝配置nginx
安裝沒什麼特別的
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure
make
make install
make clean
配置
如果沒有自訂安裝路徑
nginx.conf檔案預設路徑為/usr/local/nginx/conf/nginx.conf
如果用yum安裝配置路徑為/etc/nginx/nginx.conf
可以試著尋找
find /|grep nginx.conf
whereis nginx
修改nginx.conf 檔案,不必擔心改壞了,同目錄下還有個nginx.conf.default
如果80連接埠有其它用處,可以把listen 80;改成其它連接埠,避免衝突
內容不妨先仿著server再寫一個server與原來的server保持並列,
server {
listen 2001;
server_name [::]:2001 localhost;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
}
listen應該是監聽,那麼從外部存取應該訪問2001連接埠
uwsgi_pass 127.0.0.1:8080;這句與proxy_pass看起來很像,向內轉寄資料,並且需要在8080連接埠上有監聽,uwsgi會處理這事
啟動nginx
/usr/local/nginx/sbin/nginx
可以帶設定檔,預設用/usr/local/nginx/conf/nginx.conf
試著訪問一下x.x.x.x:80與x.x.x.x:2001
3、寫一個test.py
暫且放在/var/test/路徑下
#!/usr/bin/python2.7
# -*- coding:utf-8 -*-
# test.py
import web
urls = (
‘/‘, ‘index‘
)
class index:
def GET(self):
return ‘Hello, world!‘
app = web.application(urls,globals())
# app.run()
application = app.wsgifunc()
如果沒有web模組可以先pip install web.py
試試會不會報錯python code.py
4、安裝配置uwsgi
這裡有更詳細的說明
http://uwsgi-docs.readthedocs.io/en/latest/Install.html
tar -zxvf uwsgi-2.0.15.tar.gz
cd uwsgi-2.0.15
python uwsgiconfig.py --build
設定檔
支援多種格式,這裡用ini
為code.py寫一個設定檔test.uwsgi.ini
[uwsgi]
socket = 127.0.0.1:8080 #與nginx的uwsgi_pass對應
chdir = /var/test/
wsgi-file = test.py
processes = 4
threads = 2
stats = 127.0.0.1:2011
daemonize = ./uwsgi.log
啟動
./uwsgi --wsgi-file test.uwsgi.ini
如果正常的話
curl x.x.x.x:2001
將會返回Hello,world
否則可以到uwsgi.log中查看錯誤資訊
查看連接埠佔用
lsof -i:80
在記事本中寫了貼過來,格式有點問題,懶得改了
Nginx+uwsgi+web.py配置