ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux-location/LNMP架构

2022-01-06 19:32:07  阅读:196  来源: 互联网

标签:opt bbs LNMP web03 location linux root uwsgi


image

location

Nginx的HTTP配置主要包括三个区块,结构如下:
http { //这个是协议级别
  include mime.types;
  default_type application/octet-stream;
  keepalive_timeout 65;
  gzip on;
	server { //这个是服务器级别
	  listen 80;
	  server_name localhost;
		location / { //这个是请求级别
		  root html;
		  index index.html index.htm;
		}
	  }
}

使用nginx location可以控制访问的路径,一个server可以有多个location配置,多个location配置有优先级。

location匹配符号

匹配符 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头 2
区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 3
/ 通用匹配,任何请求都会匹配到 4
⚠️注意:
location /img/ {
		 root /var/www/image;
}
这种配置的话,则访问/img/下的文件时,nginx会去/var/www/inage/img/目录下去找文件,root是最上层目录的定义

location /img/ {
		 alias /var/www/image;
}
这种配置的话,访问/img/目录的文件时,nginx自动会去/var/www/image/目录去找,alias是一个目录别名的定义。

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

WSGI

全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。
WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。
WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。
很多框架都自带了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 做 uwsgi

uWSGI

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。
WSGI看过前面小节的同学很清楚了,是一种通信协议。
uwsgi同WSGI一样是一种通信协议。
而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

三、uwsgi服务部署

1、创建用户
[root@web03 ~]# groupadd django -g 888
[root@web03 ~]# useradd django -u 888 -g 888 -r -M -s /bin/sh
2、安装依赖软件
[root@web03 ~]# yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3-devel -y
3、安装Django和uwsgi
[root@web03 ~]# pip3 install django==1.11
[root@web03 ~]# pip3 install uwsgi
4、创建项目
[root@web03 ~]# cd /opt
[root@web03 /opt]# django-admin startproject linux
[root@web03 /opt]# cd linux 

image

标签:opt,bbs,LNMP,web03,location,linux,root,uwsgi
来源: https://www.cnblogs.com/JudyJU/p/15766999.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有