2019獨角獸企業重金招聘Python工程師標準>>>
- 開源軟件準備
需要的軟件列表:
setuptools-33.1.1.zip
Python-2.7.13.tgz
pip-9.0.1.tar.gz
nginx-1.10.3.tar.gz
軟件統一上傳到/usr/local/src/下,python是使用自己編譯的。 - Python安裝
先安裝以下的軟件(如果有的話,就可以不安裝了,例如使用rpm -qa zlib-devel先查看下)
yum install zlib-devel -y
yum install openssl-devel -ytar -zxvf解壓
./configure --prefix=/usr/local/python #安裝到/usr/local/python目錄下。
make?
make install - setuptool和pip安裝
unzip解壓setuptool
/usr/local/python/bin/python setup.py install
tar -zxvf解壓pip
/usr/local/python/bin/python setup.py install
? - flask和uwsgi安裝
使用pip安裝flask和uwsgi
/usr/local/python/bin/pip install flask
/usr/local/python/bin/pip install uwsgi - nginx安裝
先安裝pcre-devel:
yum install pcre-devel -y./configure --prefix=/usr/local/nginx
make && make install - nginx使用uwsgi配置
cat /usr/local/nginx/conf/nginx.conf
#user ?nobody; worker_processes ?1;events {worker_connections ?1024; }http {include ? ? ? mime.types;default_type ?application/octet-stream;log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';sendfile ? ? ? ?on;keepalive_timeout ?65;server {listen ? ? ? 8080;access_log ?/usr/local/nginx/logs/flask_access.log main;error_log /usr/local/nginx/logs/flask_error.log error;client_max_body_size 200M;location / {include ? ? ?uwsgi_params;uwsgi_pass ? unix:/dev/shm/uwsgi.sock;index ?index.html index.htm;}}}
啟動nginx:
/usr/local/nginx/sbin/nginx ?-t
/usr/local/nginx/sbin/nginx注意:uwsgi_pass ? unix:/dev/shm/uwsgi.sock;需要和uwsgi的配置相對應!
- uwsgi配置
cat /root/uwsgi.ini[uwsgi] uid = root gid = root socket = /dev/shm/uwsgi.sock chmod-socket = 666 enable-threads = true master = true plugins = /usr/local/python/bin/python vhost = true workers = 5 max-requests = 1000 pidfile = /var/run/uwsgi.pid daemonize = /var/log/uwsgi.log chdir = /root/ops_dev/ module = ops_dev callable = app
啟動uwsgi,有些報錯沒什么事:
/usr/local/python/bin/uwsgi /root/uwsgi.ini - 編寫測試樣例進行測試
cat /root/ops_dev/ops_dev.py
# -*- coding: UTF-8 -*- from flask import Flask app = Flask(__name__)@app.route('/', methods=['GET', 'POST']) def index():return 'Hello ?world,Python ops_dev!'
編寫完需要重啟uwsgi,開改動代碼都需要重啟uwsgi,直接使用pkill進行重啟即可:
pkill uwsgi
訪問http://localhost:8080/進行測試。
訪問日志記錄(nginx和uwsgi的訪問日志,可用來排錯。):
?
最后附上本人的網絡課堂地址,如有興趣請點擊:?實踐哥