web网站架构和Nginx

本文深入解析LNMP(Linux+Nginx+MySQL+Python)架构原理,探讨WSGI在Python Web应用中的作用,以及Nginx如何通过反向代理实现静态与动态资源分离,提升网站性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①:网站架构原理
在这里插入图片描述
②:LNMP(基于python的web架构)
Linux+nginx+mysql+python
静态资源:客户端从服务器获得的资源表现形式与原文件相同
动态资源:通常是程序文件,需要服务器执行后,将执行结果返回给客户端。

注意:httpd服务器是纯静态的web服务器。

③:主流httpd服务器:Apache Nginx
④:WSGI:Web服务器网关接口(Python Web Server Gateway Interface)
Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

⑤:Nginx介绍
是一款开源的轻量级的高性能的静态资源web服务器、同时也是非常优秀反向代理服务器、缓存服务器、邮件代理服务器。
最早由俄罗斯程序员伊戈尔·赛索耶夫开发,官方主页http://nginx.org
理念和apache不一样,占用内存少、并发能力强、在中国大陆绝大部分的网站服务器都在使用。
属于web服务器解决方案领域的新贵,市场份额一路飙升。基于异步非阻塞I/O模型

安装方法
源码:编译安装
官方的deb包
sudo apt-get -y install nginx

配置文件目录:/etc/nginx
主配置文件: /etc/nginx/nginx.conf
uwsgi参数配置文件:/etc/nginx/uwsgi_params
被主配置文件包含的配置文件:/etc/nginx/sites-available/default
网页根路径:/var/www/html
(在虚拟机中实现这些数据)

⑥:wsgi的web实现
cd /tmp
sudo apt-get -y install build-essential python3-dev python3-pip python-pip curl
sudo pip3 install uwsgi
sudo curl http://uwsgi.it/install | bash -s default /tmp/uwsgi
sudo mkdir /myweb
cd /myweb
sudo vim test.py
(在虚拟机中实现这些数据)
test.py
def application(env,start_response):
body = ‘hello ujiuye.’
status = ‘200 OK’
headers = [(‘content-type’, ‘text/html’), (‘content-length’,str(len(body))) ]
start_response(status,headers)
return [body.encode()]

sudo uwsgi --http :9090 --wsgi-file /myweb/test.py --master --processes 4 --threads 2

LINUX+NGINX+UWSGI+MYSQL

⑦:Nginx反向代理uwsgi,实现静态页面和动态页面的分离
Nginx实现反向代理,需要基于proxy模块,语法如下

server {
listen
server_name
location / {
proxy_pass
}
}
在这里插入图片描述

sudo nginx -t (检查语法)
sudo service nginx restart (重启服务)
重启服务后,即可在浏览器上输入:自己的ip+test.py检查该连接是否被架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值