Linux之LNMP架构

LNMP框架

  LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=Python

  首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。

    1.静态请求:请求的内容是静态文件就是静态请求

      1)静态文件:文件上传到服务器,永远不会改变的文件就是静态文件

      2)html就是一个标准的静态文件

    2.动态请求:请求的内容是动态的就是动态请求

       1)不是真实存在服务器上的内容,是通过数据库或者其他服务拼凑成的数据

  当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过uwsgi协议转交给后端的Python程序处理

uwsgi

  因为nginx不支持wsgi协议,无法直接调用py开发的webApp。  

  在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp。

  nginx接收用户请求,并判定哪些转发到uWsgi,uWsgi再去调用pyWebApp。

uwsgi服务部署

  1、创建用户

[root@web01 opt]# groupadd django -g 888
[root@web01 opt]# useradd django -u 888 -g 888 -r -M -s /bin/sh

  2、安装依赖软件

[root@web01 opt]# yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3-devel -y

  3、安装django和uwsgi

[root@web01 opt]# pip3 install django
[root@web01 opt]# pip3 install uwsgi

  4、创建项目

[root@web01 opt]# cd /opt
[root@web01 opt]# django-admin startproject linux
[root@web01 opt]# cd linux
[root@web01 opt]# django-admin startapp app01
[root@web01 linux]# vim linux/settings.py

Linux之LNMP架构

 Linux之LNMP架构

   5、启动测试

[root@web01 linux]# python3 manage.py runserver 0.0.0.0:8000

Linux之LNMP架构

Linux之LNMP架构

   6、编辑项目配置文件(使用nginx代理

[root@localhost ~]# vim /opt/linux/myweb_uwsgi.ini 
[uwsgi]
# 端口号
socket            = :8000
# 指定项目的目录
chdir           = /opt/linux
# wsgi文件路径
wsgi-file       = linux/wsgi.py
# 模块wsgi路径
module          = linux.wsgi
# 是否开启master进程
master          = true
# 工作进程的最大数目
processes       = 4
# 结束后是否清理文件
vacuum          = true

Linux之LNMP架构

   7、启动uwsgi

[root@web01 linux]# uwsgi -d --ini myweb_uwsgi.ini --uid 666

-d       : 以守护进程方式运行
--ini : 指定配置文件路径
--uid : 指定uid

Linux之LNMP架构

   8、编辑Nginx配置文件

[root@localhost ~]# cat /etc/nginx/conf.d/python.conf 
server {
    listen 80;
    server_name py.test.com;
    location / { 
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
        uwsgi_param UWSGI_SCRIPT linux.wsgi;
        uwsgi_param UWSGI_CHDIR /opt/linux;
        index  index.html index.htm;
        client_max_body_size 35m;
    }
}

  9、重启Nginx

systemctl restart nginx

  10、域名解析

Linux之LNMP架构

  11、测试

Linux之LNMP架构

Linux之LNMP架构

 

上一篇:Linux之LNMP架构


下一篇:Linux中的location和LNMP架构