一:LNMP架构简介

  • LNMP是一套技术的组合,L=Linux、N=Nginx、M=MySQL、P=Python
首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。
1.静态请求:请求的内容是静态文件就是静态请求
1.静态文件:文件上传到服务器,永远不会改变的文件就是静态文件
2.html就是一个标准的静态文件
2.动态请求:请求的内容是动态的就是动态请求
1.不是真实存在服务器上的内容,是通过数据库或者其他服务拼凑成的数据
  • 当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回

  • 如果是动态请求Nginx则通过uwsgi协议转交给后端的Python程序处理

  • 详细动静分离:https://www.cnblogs.com/goOJBK/p/15769100.html

1.Nginx与uwsgi
因为nginx不支持wsgi协议,无法直接调用py开发的webApp。
在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp。
nginx接收用户请求,并判定哪些转发到uWsgi,uWsgi再去调用pyWebApp。

  • uwsgi作用:

  • uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议。比如把HTTP协议转化成WSGI协议,让Python可以直接使用。

  • uWSGI的适用:

  • 1.单节点服务器的简易部署

  • 2.轻量级,好部署

  • 详细uwsgi作用:https://www.cnblogs.com/goOJBK/p/15769094.html

  • Nginx的作用
  • Nginx是一个Web服务器其中的HTTP服务器功能和uWSGI功能很类似,但是Nginx还可以用作更多用途,比如最常用的反向代理功能。
  • nginx的适用:
  • 1.反向代理,可以拦截一些web攻击,保护后端的web服务器
  • 2.负载均衡,根据轮询算法,分配请求到多节点web服务器
  • 3.缓存静态资源,加快访问速度,释放web服务器的内存占用,专项专用

二:django框架+python

1.创建用户
[root@web02 linux]# groupadd django -g 888
[root@web02 linux]# useradd django -u 888 -g 888 -r -M -s /bin/sh
2.安装依赖包
[root@web01 linux]# yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3-devel -y
3.安装uwsgi和django
[root@web01 linux]# pip3 install uwsgi
安装django框架
[root@web01 linux]# pip3 install django==2.2.2

4.测试python
python3
5.创建django项目
[root@web02 opt]# cd /opt/
[root@web02 opt]# django-admin startproject linux
6.在项目中创建应用
[root@web02 opt]# cd linux/
[root@web02 linux]# pwd
/opt/linux
[root@web02 linux]# django-admin startapp application

7.修改配置文件
			[root@web02 linux]# vim /opt/linux/linux/settings.py
ALLOWED_HOSTS = ['*']
DATABASES = {}

8.启动,django浏览器访问
	[root@web02 linux]# pwd
/opt/linux
[root@web02 linux]# python3 manage.py runserver 0.0.0.0:8000
  • 目前状态正在运行
  • ctdrl + c 就代表关闭

9.网址测试
192.168.15.7:8000
代表成功 django自己在运行

三:uwsgi服务器部署

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

2.启动uwsgi
[root@web02 linux]# cd /opt/linux
[root@web02 linux]# uwsgi -d --ini myuwsgi.ini
代表成功
[uWSGI] getting INI configuration from myuwsgi.ini
以上方法即可 以下开启参考
启动uwsgi(后台启动)
[root@web01 linux]# uwsgi -d --ini myweb_uwsgi.ini --uid 666 参数:
-d : 以守护进程方式运行
--ini : 指定配置文件路径
--uid : 指定uid
3.查看uwsgi进程列表
[root@web02 linux]# ps -ef | grep uwsgi
4.配置Nginx连接uwsgi
uwsgi是TCP服务   TCP服务包含http  http不包含TCP
切换路径
[root@web01 linux]# cd /etc/nginx/conf.d/
创建配置文件
[root@web01 conf.d]# vim python.conf
        # nginx配置文件(网站)
server {
# 监听的端口
listen 80;
# 配置域名
server_name py.test.com;
# 配置路径
location / {
# 加载Nginx代理uwsgi的配置项
include uwsgi_params;
# 指定uwsgi的访问地址
uwsgi_pass 127.0.0.1:8000;
# 连接uwsgi的超时时间
uwsgi_read_timeout 2;
# 自定义uwsgi代理项目的路径及配置项
uwsgi_param UWSGI_SCRIPT linux.wsgi;
# 指定python项目的路径
uwsgi_param UWSGI_CHDIR /opt/linux;
# 索引文件
index index.html index.htm;
# 客户端上传文件的最大值
client_max_body_size 35m;
}
}

5.测试
nginx -t
6.重启Nginx
[root@web02 conf.d]# systemctl restart nginx
7.DNS解析
192.168.15.7 py.test.com

地址:C:\Windows\System32\drivers\etc

8.部署uwsgi(网址测试)
http://py.test.com/

LNMP架构搭建的更多相关文章

  1. 基于LNMP架构搭建wordpress博客之安装架构说明

    架构情况 架构情况:基于LNMP架构搭建wordpress系统 软件包版本说明: 系统要求 :  CentOS-6.9-x86_64-bin-DVD1.iso PHP版本  :  php-7.2.29 ...

  2. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

  3. 部署企业LNMP架构搭建bbs

    部署企业LNMP架构 1===============部署Nginx 2===============安装及部署Mysql数据库 3===============安装PHP解析环境 4======== ...

  4. lnmp架构搭建实例

    lamp->lnmp nginx survey.netcraft.net 查看各大网站使用的web服务器,使用下面的命令 # curl -I www.sina.com 结论:现在大型网站几乎统一 ...

  5. Linux系统下LNMP架构搭建

    一.防火墙状态: 1.查看防火墙状态: systemctl status firewalld service iptables status firewall-cmd --state 2.永久有效开启 ...

  6. Linux LNMP架构搭建

    一.搭建LNMP基本架构 1.L(http) N(nginx) M(mysql) P(php) 2.安装顺序 Mysql-->PHP-->Nginx 3.安装包 Discuz_3. htt ...

  7. 基于LNMP架构搭建wordpress个人博客

    搭建过程 注意防火墙和selinux的影响可以先关闭. 一.安装nginx # 1.更改nginx源安装nginx [root@web01 ~]# vi /etc/yum.repos.d/nginx. ...

  8. LNMP系统服务搭建过程详解

    和LAMP不同的是LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)其他都一样.目前这种环境应用的也是非常之多.Nginx设计的初衷是提供一种快速高效多并发的web服务软件.在静 ...

  9. 第十一章 LNMP架构基础介绍

    一.LNMP架构 1.简介 oLNMP是一套技术的组合,L=Linux.N=Nginx.M~=MySQL.P~=PHP不仅仅包含这些,还有redis/ELK/zabbix/git/jenkins/ka ...

随机推荐

  1. The Luckiest number(hdu2462)

    The Luckiest number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. Dart 2.15 现已发布

    作者 / Michael Thomsen, Dart & Flutter Product Manager, Google 我们已经正式发布了 Dart SDK 的 2.15 版本,该版本新增了 ...

  3. uniapp与webview之间的相互传值

    1.uni-app 如何发送数据到 H5? 其实很接单.在 web-view 中只需要通过 URL 就可以向 H5 进行传参 例如在 uni-app 中: <template> <v ...

  4. CS5213替代AG6200 AG6201|HDMI转VGA带音频输出方案芯片

    台湾安格AG6200 AG6201专门用于设计HDMI转VGA带音频输出的方案芯片,CS5213是一款HDMI to VGA转换器且结合了HDMI输入接口和模拟RGB DAC输出.带支持片上音频数模转 ...

  5. JS中常见的几种控制台台报错

    Error 控制台报错 EvalError 全局错误RangeError 引用错ReferenceError 参数错误SyntaxError 语法错误TypeError 类型错误URIError 编码 ...

  6. linux rm 删除命令

    2022-01-04 1. 命令简介 Linux rm(英文全拼:remove)命令用于删除一个文件或者目录. 2. 语法及参数 2.1 语法 rm [options] name... 2.2 参数 ...

  7. WinForm应用程序的开机自启、记住密码,自动登录的实现

    一.思路: 1.开机自启,自然是需要用到注册表,我们需要把程序添加到电脑的注册表中去 2.记住密码,自动登录,开机自启,在页面的呈现我们都使用复选框按钮来呈现 3.数据持久化,不能是数据库,可以是sq ...

  8. Kafka基础教程(四):.net core集成使用Kafka消息队列

    .net core使用Kafka可以像上一篇介绍的封装那样使用(Kafka基础教程(三):C#使用Kafka消息队列),但是我还是觉得再做一层封装比较好,同时还能使用它做一个日志收集的功能. 因为代码 ...

  9. centos7 查看卸载软件

    rpm -e xxx查不到就用下面的 # 查询软件列表# rpm -qa | grep 软件名rpm -qa | grep maxscale # 卸载软件# sudo yum remove 软件名su ...

  10. android 解决报错 installation failed with message Failed to finalize session : INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed parse during installPackageLI: Failed to read manifest from /xx/xx/xx.apk

    新工程启动报错 怎么办? 解决: 将这个选项去掉勾选后点击ok即可