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 # 指定工作进程名称的前缀

浙公网安备 33010602011771号