共计 3986 个字符,预计需要花费 10 分钟才能阅读完成。
本人环境 CentOS 6.x,是刚安装上的 Linux 系统。
CentOS IP:192.168.1.1
Python:2.7.11
Django:1.9.5
Nginx:1.10.1
进入服务器后,要安装一大堆东西。
pip(下载 django,uwsgi 需要用 pip 下载)
yum install wget -y
wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a
tar zxvf pip-8.1.2.tar.gz
cd ./pip-8.1.2
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
cd ../
python setup.py install
然后利用 pip 下载 django 和 uwsgi
pip install django==1.9.5
pip install uwsgi
下载完成之后就可以把你所写的项目放到服务器上面。我这里距离是放在 /project/
然后测试 django
python /project/manage.py runserver 192.168.1.1:8000 #按需求更改 IP
然后内网访问 192.168.1.1:8000,如果可以正常访问则 OK。
uwsgi
首先新建 1 个 test.uwsgi.py 文件在项目的根目录。即 /project (与 manage.py 同目录)
文件内容如下:
1 #coding:utf-8
2 import os
3 import sys
4 reload(sys)
5 sys.setdefaultencoding('utf8')
6
7 from django.core.wsgi import get_wsgi_application
8
9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") #project 为项目名,请按需求修改
10
11 application = get_wsgi_application()
uwsgi 的话有 2 种开启方法
第一种是直接在命令行输入命令打开,如:
uwsgi --http 192.168.1.1:8000 --chdir /project --module test_uwsgi --chmod-socket=666
第二种就是添加 ini 或 xml 配置文件
新建文件 test.ini 在项目根目录
vi /project/test.ini
[uwsgi]
http = 192.157.1.1:8000 # 监听 IP 和端口
chdir = /project # 项目根目录
module = test_uwsgi #uwsgi 文件,注意不用把后缀.py 加上去
processes = 4 # 开启 4 个进程(按需更改)
threads = 2 # 每个进程开启 4 个线程
enable-threads = True # 支持线程启动
daemonize = /var/log/uwsgi.log # 后台启动,并把日志记录到指定文件
buffer-size = 21573
stats = 192.157.1.1:9000
示例中用的是 ini 配置文件,如需使用 xml 配置,请另行百度 xml 配置文件。更多的参数使用也可以自行百度添加上去
当 ini 配置文件写好后执行
uwsgi --ini /project/blog.ini #--ini 表示使用 ini 配置文件,xml 文件就用 --xml
做完这些之后就访问 192.168.1.1:8000 端口,如无意外的话是可以访问成功的,但是我搭建的时候是可以访问成功,但是访问不了 css,js,图片等静态文件。
如果出现问题无法访问成功,请仔细阅读启动 uwsgi 之后弹出来的一系列信息,里面一般都包含有错误信息。按照提示修改即可。
因为网页可以访问成功而且静态文件本来就是打算放在 nginx 上让用户直接访问,所以我就继续把配置进行下去了。
安装 nginx
因为途方便,所以我直接选择 yum 安装。
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
chmod +x nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -i nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx -y
如无法安装成功,就在百度上搜其他的安装方法把 nginx 装上。
安装成功之后,nginx 的目录会在 /etc/nginx 下
接下来就要修改 nginx 的默认配置了。
查看默认配置文件
cat /etc/nginx/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {worker_connections 1024;
}
http {include /etc/nginx/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"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
这是我的默认配置文件,如果我没记错的话应该是没做过任何修改的。请确保里面有 include /etc/nginx/conf.d/*.conf; 这行
这行的意思就是包含了所有 /etc/nginx/conf.d/ 下 后缀是.conf 的配置文件
然后我们在 /etc/nginx/conf.d/ 目录下创建 test.conf
vi /etc/nginx/conf.d/test.conf
server{listen 80 ; #监听 80 端口
access_log /var/log/nginx/access.log; #日志文件位置
error_log /var/log/nginx/error.log;
location / {# 访问 / 时
include uwsgi_params; #加载 uwsgi 模块
proxy_pass http://192.168.1.1:8000; #将连接转到该 IP
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {root html;}
location /static/ {alias /project/static/; #访问 /static 时直接访问到 /project/static
}
}
然后就大功告成了。当用户直接访问 192.168.1.1:80 时 nginx 就会把连接转到 192.168.1.1:8000 上。
如果文章内有出错的地方,或者对文章有任何意见,可在评论下说明。
更多参考
Nginx+uWSGI+Supervisor 在 Ubuntu 上部署 Flask 应用 http://www.linuxidc.com/Linux/2016-07/133064.htm
uWSGI+Django+Nginx 的工作原理流程与部署过程 http://www.linuxidc.com/Linux/2017-03/141785.htm
快速部署 Python 应用:Nginx+uWSGI 配置详解 http://www.linuxidc.com/Linux/2016-12/137830.htm
Nginx+uWSGI+Django+Python 应用架构部署 http://www.linuxidc.com/Linux/2015-10/124183.htm
Ubuntu Server 14.04.2 LTS 配置 Nginx + Uwsgi + Django http://www.linuxidc.com/Linux/2015-04/116397.htm
Flask+uWSGI+Nginx+Ubuntu 部署教程 http://www.linuxidc.com/Linux/2016-06/132690.htm
Ubuntu 16.04 下安装部署 Nginx+uWSGI+Django1.9.7 http://www.linuxidc.com/Linux/2016-07/133484.htm
Nginx+uWSGI+Django 在 Ubuntu 下的部署 http://www.linuxidc.com/Linux/2016-07/133490.htm
Linux 上利用 Nginx 代理 uWSGI 处理 Flask Web 应用 http://www.linuxidc.com/Linux/2016-08/134164.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/141806.htm