uwsgi+django+nginx 搭建部分总结

目录

 

第一、uwsgi协议

1.uwsgi协议说明

2.应用说明

2.1 启用uwsgi

2.3 关闭uwsgi

第二、nginx 服务器使用

1. nginx介绍

2. nginx 应用

2.1 nginx 使用

2.2 nginx 启用

2.3 nginx 停止


环境:Cent7.5+Django2.1.2+uwsgi2.0.17+nginx1.12.2

第一、uwsgi协议

1.uwsgi协议说明

uwsgi 是基于wsgi 协议的一个应用。wsgi 是网页服务器网关接口协议,用来处理http request、response的消息。

uwsgi 2.0.17 基于python2 下的pip install uwsgi 来安装,可以通过xml或ini文件格式来做初始化配置。

2.应用说明

这里用ini配置。conf.ini内容如下:

[uwsgi]
socket=:8080
chdir=/home/website/hourseWebSiteProject
#wsgi-file=hourseWebSiteProject/wsgi.py
module=hourseWebSiteProject.wsgi
pidfile=pid.uwsgi
master=true
processes=4
threads=2
buffer-size=32768
virtualenv=/home/website/ll_env
daemonize=UWSGI.log
vacuum=true

socket=:8080 是用来配置nginx 服务器,用来建立socket通信的,如果单独启用测试运行django服务器,让外网访问设置为http=:8080 。指定任何地址可以访问。

chidir 用来指定Django的项目目录。

module 指定wsgi文件

virtualenv 指定安装的Python3 安装的虚拟环境,运行uwsgi 协议应用是在虚拟环境目录下进行的.

命令:source ll_env/bin/activate

/home/website/ll_env 为建立的虚拟环境目录路径,此处使用的是python3.5+django 2.0.7环境

daemonize 指定uwsgi运行在后台

2.1 启用uwsgi

uwsgi --ini conf.ini
#以上命令启用uwsgi,用cat UWSGI.log 查看当前目录下uwsgi生成的日志信息是什么

netstat -ntlp 
#此命令查看端口8080 对应的uwsgi 服务是否启用。

2.3 关闭uwsgi

(ll_env) [root@192 hourseWebSiteProject]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      999/sshd            
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1641/nginx: master  
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1628/uwsgi          
tcp6       0      0 :::10022                :::*                    LISTEN      999/sshd            
tcp6       0      0 :::3306                 :::*                    LISTEN      1037/mysqld  

#查找到 uwsgi 的进程号PID 1628 用以下命令关闭
kill -9 1628

第二、nginx 服务器使用

1. nginx介绍

nginx是web应用中继服务器用来转发网页请求,将网页请求转发给uwsgi 网关应用。

当uwsgi配置启动成功后,需要配置nginx。

首先Django 项目的工程下的setting.py 下的DEBUG=True 。如果DEBUG 改为False ,Django 项目就不能自动索引Static静态文件了,这个时候就通过nginx来提供静态文件的目录了,同时template 中的网页模板中的引入文件路径就要修改了。

原来的模板<script src="{%static 'lib/jquery.js'%}" type="text/javascript"/>  此处我们配置的是static最为根目录,

所以改为<script src="/static/lib/jquery.js" type="text/javascript"/>

在setting.py 中将DEBUG=True改为DEBUG=False。Django 就不再索引原有的静态文件目录了。

在setting.py 底部添加STATIC_ROOT='/var/www'  。设置我们静态文件存储目录,文件夹如果不存在就创建。

然后用命令

python3 manage.py collectstatic
#此命令将项目和App 下所有的static目录统一收集到STATIC_ROOT标识的目录下

 

2. nginx 应用

2.1 nginx 使用

nginx version: nginx/1.12.2

此处版本是1.12.2 配置文件存放在/usr/local/nginx/conf/nginx.conf 路径下

修改nginx.conf 中的server 部分配置,内容如下:

server {
     listen       80;
     #server_name  localhost;
     server_name  localhost 192.168.56.9;
     charset utf-8;
     #charset koi8-r;
     #access_log  logs/host.access.log  main;
     #location / {
     #    root   html;
     #    index  index.html index.htm;
      #}
     location /{
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8080;
         }
     location /static{
             alias /var/www;
             access_log off;
        }

 

listen 监听的是对外端口

server_name 标识的是对外提供服务的主机地址,此处是192.168.56.9

location / 根目录是用来配置和uwsgi 通信,此处是本地同一台主机,所以使用127.0.0.1用的是8080端口

include uwsgi_param 用来启用通信的一些配置参数。uwsgi_param在目录/usr/local/nginx/conf/ 下

location /static 用来配置静态目录,就是python3 manage collectstatic 收集的静态文件目录/var/www

2.2 nginx 启用

 nginx -c /usr/local/nginx/conf/nginx.conf

指定特定的配置文件启动

(ll_env) [root@192 hourseWebSiteProject]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      999/sshd            
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1641/nginx: master  
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1628/uwsgi          
tcp6       0      0 :::10022                :::*                    LISTEN      999/sshd            
tcp6       0      0 :::3306                 :::*                    LISTEN      1037/mysqld       

netstat -ntlp 命令可以查看到nginx进程使用的80端口,本地通信uwsgi 使用socket 8080 端口

2.3 nginx 停止

nginx -s stop

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值