Linux教程

Linux之LNMP架构

本文主要是介绍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

 

   5、启动测试

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

   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

   7、启动uwsgi

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

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

   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、域名解析

  11、测试

 

这篇关于Linux之LNMP架构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!