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程序处理

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.轻量级,好部署

- 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架构搭建的更多相关文章
- 基于LNMP架构搭建wordpress博客之安装架构说明
架构情况 架构情况:基于LNMP架构搭建wordpress系统 软件包版本说明: 系统要求 : CentOS-6.9-x86_64-bin-DVD1.iso PHP版本 : php-7.2.29 ...
- 企业级LNMP架构搭建实例(基于Centos6.x)
1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...
- 部署企业LNMP架构搭建bbs
部署企业LNMP架构 1===============部署Nginx 2===============安装及部署Mysql数据库 3===============安装PHP解析环境 4======== ...
- lnmp架构搭建实例
lamp->lnmp nginx survey.netcraft.net 查看各大网站使用的web服务器,使用下面的命令 # curl -I www.sina.com 结论:现在大型网站几乎统一 ...
- Linux系统下LNMP架构搭建
一.防火墙状态: 1.查看防火墙状态: systemctl status firewalld service iptables status firewall-cmd --state 2.永久有效开启 ...
- Linux LNMP架构搭建
一.搭建LNMP基本架构 1.L(http) N(nginx) M(mysql) P(php) 2.安装顺序 Mysql-->PHP-->Nginx 3.安装包 Discuz_3. htt ...
- 基于LNMP架构搭建wordpress个人博客
搭建过程 注意防火墙和selinux的影响可以先关闭. 一.安装nginx # 1.更改nginx源安装nginx [root@web01 ~]# vi /etc/yum.repos.d/nginx. ...
- LNMP系统服务搭建过程详解
和LAMP不同的是LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)其他都一样.目前这种环境应用的也是非常之多.Nginx设计的初衷是提供一种快速高效多并发的web服务软件.在静 ...
- 第十一章 LNMP架构基础介绍
一.LNMP架构 1.简介 oLNMP是一套技术的组合,L=Linux.N=Nginx.M~=MySQL.P~=PHP不仅仅包含这些,还有redis/ELK/zabbix/git/jenkins/ka ...
随机推荐
- 【LeetCode】822. Card Flipping Game 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/card-flip ...
- 【LeetCode】890. Find and Replace Pattern 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典+set 单字典 日期 题目地址:https:/ ...
- hdu-5569matrix(dp)
http://acm.hdu.edu.cn/showproblem.php?pid=5569; 题目意思: 从(1,1)点出发只能向右和向下走,到达(n,n)点时所得到的价值最小, 价值是Let th ...
- BL8810最新版规格书|BL8810方案|USB 2.0读卡器控制器
在数码产品越来越普及的今天,利用单反.手机.平板等产品随手拍下相片.储存一些非常重要的数据等已经成为很多人必做的事情,而除使用数据线进行数据导入导出的操作外,利用读卡器也是一个必然的选择,就以本人自己 ...
- 【微信小程序云开发】1分钟学会实现上传、下载、预览、删除图片,并且以九宫格展示图片
大家好,我叫小秃僧 这篇文章是讲解云开发如何上传.下载.预览.删除图片,并且以九宫格展示图片的功能 @ 目录 1. 实现效果 2.JavaScript代码 3.wxml代码 4.wxss代码 1. 实 ...
- 比例阀驱动电路后级PWM滤波尖刺如何消除?PWM通过RC低通滤波器模拟DAC
双头比例阀驱动电路,采用单片机输出2路PWM,分别驱动功率器件(U100的2和4脚),经过U100的8和10脚输出供电电源的高压PWM波形,这个高压PWM经过R104和R114分别采样后经过电流放大器 ...
- Pytest_Hook函数pytest_addoption(parser):定义自己的命令行参数(14-1)
考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...
- Jenkins_创建git任务(3)
jenkins创建git任务,需要使用插件 点击Manage Jenkins,点击Manage Plugins 点击Available搜索git,安装git plugin 进入项目管理界面,会有个Gi ...
- ElasticSearch的应用
一.介绍 全文检索技术: 分布式: Restful风格: 近实时搜索 二.部署 下载:https://thans.cn/mirror/elasticsearch.html 新建用户,并登录: 解压: ...
- KMP算法解题模板(更新)
/* kmp算法的主要作用在于对next数组的运用,所以这里只给出next数组的模板 性质1:对于每一个长度len的子串,该子串的最小循环节为len-next[len] 性质2:kmp的next不断向 ...