阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS部署Nginx+uWSGI+Django

430次阅读
没有评论

共计 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

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3986字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19352
评论数
4
阅读量
8159880
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...