nginx-python-django部署

1.安装各类基础模块

yum install -y gcc-c++ wget libxml* openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

 2.安装nginx和配置nginx.conf文件

useradd -s /sbin/nologin -M nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.13.8.tar.gz
tar -zxvf nginx-1.13.8.tar.gz
cd nginx-1.13.8
./configure \
--prefix=/usr/local/nginx-1.13.8 \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
make
make install
ln -s /usr/local/nginx-1.13.8 /usr/local/nginx

 3.编译安装python3

cd /usr/local/src
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -zxvf Python-3.6.4.tgz
cd Python-3.6.4
./configure --prefix=/usr/local/python3.6.4 --enable-optimizations
make -j
make install
ln -s /usr/local/python3.6.4 /usr/local/python3


# 配置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/python3.6.4/bin
source /etc/profile

 4.python3安装django和uwsgi以及配置

pip3 install django
pip3 install uwsgi
pip3 install pymysql xlsxwriter xlsxwriter xlrd

 5.部署站点

cd /data/wwwroot/pyweb

=================编辑ini文件=================
vim uwsgi.ini
[uwsgi]
# 指定IP端口
socket = 127.0.0.1:8080
plugins = python
# 站点目录
chidir = /data/wwwroot/pyweb
# 指定sock的文件路径       
#socket = /data/wwwroot/pywebuwsgi.sock
# 进程个数       
workers = 5
pidfile = /data/wwwroot/pyweb/uwsgi.pid
# 指定静态文件
static-map = /data/wwwroot/pyweb/static
wsgi-file = run.py
callable = app
# 启动uwsgi的用户名和用户组
uid = nginx
gid = nginx
# 设置日志目录
daemonize = /data/wwwroot/pyweb/uwsgi.log

6. 启动服务

# 启动服务
uwsgi --ini uwsgi.ini

 7.nginx配置站点

server { 
	listen 8996;
	server_name localhost; 
	charset utf-8; 
location / { 
	include uwsgi_params; 
	uwsgi_pass 127.0.0.1:8080; 
	} 
location /static/ { 
	alias /home/www/myproject/myapp/static/; 
	} 
}

 8.数据库

use phautomation_v1;
grant all on phautomation_v1.* to 'pythonweb'@'192.168.1.%' identified by 'pythonweb';

 

9.uwgsi常用配置选项

    接下来会列出一些比较常用的配置参数

    chdir=/xxx/xxx # 指定项目目录
    home=/xxx/xxx # 指定虚拟环境变量
    wsgi-file=xxx # 指定加载WSGI文件
    socket=xxx # 指定uwsgi的客户端将要连接的socket的路径(使用UNIX socket的情况)或者地址(使用网络地址的情况)。
    callable=xxx # uWSGI加载的模块中哪个变量将被调用
    master=true # 指定启动主进程
    processes=4 # 设置工作进程的数量
    threads=2 # 设置每个工作进程的线程数
    vacuum=true # 当服务器退出时自动删除unix socket文件和pid文件
    logfile-chmod=644 # 指定日志文件的权限
    daemonize=%(chdir)/xxx.log # 进程在后台运行,并将日志打印到指定文件
    pidfile=%(chdir)/xxx.pid # 在失去权限前,将主进程pid写到指定的文件
    uid=xxx # uWSGI服务器运行时的用户id
    gid=xxx # uWSGI服务器运行时的用户组id
    procname-prefix-spaced=xxx # 指定工作进程名称的前缀

[uwsgi]
chdir=/home/git/www/cloudmonitor # 指定项目目录
home=/home/git/www/cloudmonitor/.env # 指定python虚拟环境
wsgi-file=manager.py # 指定加载的WSGI文件
callable=app # 指定uWSGI加载的模块中哪个变量将被调用
master=true # 启动主线程
processes=4 # 设置工作进程的数量
threads=2 # 设置每个工作进程的线程数
socket=127.0.0.1:8888 # 指定socket地址
vacuum=true # 当服务器退出时自动删除unix socket文件和pid文件
logfile-chmod=644 # 指定日志文件的权限
daemonize=%(chdir)/cloudmonitor.log # 进程在后台运行,并将日志打印到指定文件
pidfile=%(chdir)/cloudmonitor.pid # 在失去权限前,将主进程pid写到指定的文件
uid=git # uWSGI服务器运行时的用户id
gid=git # uWSGI服务器运行时的用户组id
procname-prefix-spaced=cloudmonitor # 指定工作进程名称的前缀

 

posted @ 2018-08-17 12:18  sunmmi  阅读(78)  评论(0)    收藏  举报