数据库考点之网站架构

news/2024/5/14 23:18:36/文章来源:https://blog.csdn.net/guangod/article/details/108617408

如题:2019年10月:

 注:

书本上讲了两种,也算是一笔带过,但可以从整体上了解数据库在编程中的作用,所以这里还是有重要意义的,书本上详见P94页:

 LAMP这种架构是一种初始阶段的架构,一般都是小型应用。特点是:应用程序、数据库、文件等所有的资源都在一台服务器上。

通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统的发展之路了。

apache主要实现如下功能:

    第一:处理http的请求、构建响应报文等自身服务;

    第二:配置让Apache支持PHP程序的响应(通过PHP模块或FPM);

    第三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理。

    mariadb主要实现如下功能:

    第一:提供PHP程序对数据的存储;

    第二:提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)。

    php主要实现如下功能:

    第一:提供apache的访问接口,即CGI或Fast CGI(FPM);

    第二:提供PHP程序的解释器;

    第三:提供mairadb数据库的连接函数的基本环境。

 处理一次动态页面请求,服务器主要经历:Apache处理请求——通过CGI接口访问PHP的的应用程序——PHP应用程序调用PHP解释器执行PHP代码——PHP程序访问调用数据库——最后给客户做反馈。

何为PHP呢???

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)

PHP 是一种 HTML 嵌入式的脚本语言。php文件以.php结尾。它的很多语法来自 C,Java 和 Perl,并具有几个 PHP 独有的特点。该语言的主要目标是让 Web 开发人员快速地书写动态生成的网页。(所谓动态:交互式)。

PHP 脚本主要用于以下三个领域:

  • 服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。
  • 命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。
  • 编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。

扩展:

对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。

操作系统

Linux操作系统有很多个不同的发行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一个发行版都有自己的特色,比如RHEL的稳定,Ubuntu的易用,基于稳定性和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating System)是一个理想的方案。

LAMP网站架构方案分析

Web服务器、缓存和PHP加速

  Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web服务器(例如nginx)高效,轻量级的Web服务器对于静态文件的响应能力来说远高于Apache服务器。

  Apache做为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用nginx来负载非PHP的Web请求。nginx是一个高性能的HTTP和反向代理服务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容错,可和Apache配合使用,是轻量级的HTTP服务器的首选。

Web服务器的缓存也有多种方案,Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,把Squid放在Apache的前端来缓存Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。如访问量巨大则可考虑使用memcache作为分布式缓存。

  PHP的加速使用eAccelerator加速器,eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。

  具体的解决方案有以下几种:

  1、squid + Apache + PHP + eAccelerator

  使用Apache负载PHP,使用squid进行缓存,html或图片的请求可以直接由squid返回给用户。很多大型网站都采用这种架构。

  2、nginx/Apache + PHP(fastcgi) + eAccelerator

  使用nginx或Apache负载PHP,PHP使用fastcgi方式运行,效率较高。

  3、nginx + Apache + PHP + eAccelerator

  此方案综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,Apache端口不对外开放。

数据库

  开源的数据库中,MySQL在性能、稳定性和功能上是首选,可以达到百万级别的数据存储,网站初期可以将MySQL和Web服务器放在一起,但是当访问量达到一定规模后,应该将MySQL数据库从Web Server上独立出来,在单独的服务器上运行,同时保持Web Server和MySQL服务器的稳定连接。

  当数据库访问量达到更大的级别,可以考虑使用MySQL Cluster等数据库集群或者库表散列等解决方案。

总的来说,LAMP架构的网站性能会远远优于Windows IIS + ASP + Access(例如月光博客)这样的网站,可以负载的访问量也非常大,国内的大量个人网站如果想要支撑大访问量,采用LAMP架构是一个不错的方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_782570.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.net(C#)学习网站

名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 名称:微软官方.NET指…

第一次建设网站-论文无忧网

第一次建网站啦,给自己做的。本人没有美工基础,网站还在建设中。。。持续改善。各位有建站经验的请教一下。 上图:

php-mysql驱动是什么,用PHP和MySQL构建一个数据库驱动的网站_php

将这个脚本添加到启动事务中是个比较复杂的任务。如果你使用的不是RedHat linux而且你没有把握做这件事,你最好请教一下了解的人。在RedHat Linux中,执行以下命令(在mysql目录下)会完成这个工作:% cp share/mysql/mysql.server /etc/rc.d/ini…

php网站模板原理,PHP关于模板的原理和解析

将PHP代码和静态HTML代码进行分离,使代码的可读性和维护性得到显著提高。使用模板引擎:我们所说的模板是Web模板,是主要由HTML标记组成的语言来编写的页面,但也有如何表示包含动态生成内容的方式(解析标签)。模板引擎是一种软件库…

获取国家语言_干货—「世界各国语言网站学习分享」,附带100G语种学习资料...

这是一篇纯干货分享的文章,资料无偿附送~如果你有兴趣或者需求想要学习其他语种可以【私信】联系小编,获取专属资料世界上到底有多少种语言呢?语言是人类交际的重要工具。凡有人类的地方就会有语言。其实统计语言数量是一件非常困难的事情,一…

3638MySQL数据库应用答案_资料操作 - MySQL精华学习 数据库的 SQL 语法参考_数据库技术_Linux公社-Linux系统门户网站...

MySQL精华学习 数据库的 SQL 语法参考资料操作[日期:2007-04-28]来源:Linux公社作者:Linux[字体:大 中 小]二、资料操作 dml (data manipulation language)  资料定义好之後接下来的就是资料的…

关闭网站服务器端口,cmd关闭端口的命令是什么_网站服务器运行维护

win10系统提示安装程序包的语言不受系统支持怎么办_网站服务器运行维护win10系统提示安装程序包的语言不受系统支持的解决方法是:1、打开此电脑,在搜索框中输入office,进行搜索;2、将搜索出来的内容全部删除;3、打开注…

全国哀悼日 网站变灰装(附代码)

根据国务院文件,全国哀悼日,在此期间,全国和各驻外机构下半旗志哀,停止公共娱乐活动,外交部和我国驻外使领馆设立吊唁簿。届时汽车、火车、舰船鸣笛,防空警报鸣响。 中国站长站将整站换成素装。并建议中国所…

快照速度_网络推广——网络推广专员如何看待网站快照更新快慢问题?

百度搜索引擎针对网站快照更新的问题曾有言明,表示网站快照的更新快慢与网站权重没有太多的直接关系,因为搜索引擎对网站抓取频率与快照更新是两个不同的概念,然而有很多站长表示快照更新慢是不是因为网站内部出现问题?或者是网站…

服务器加网站防盗链,自己做网站如何做防盗链设置

我们在做网站时,如果自己网站上的图片被别人复制过去,就会增加自己网站服务器的负担,所以在做网站时,需要做一些防盗链设置。如果你的空间支持.htaccess文件并且支持网站伪静态规则,你都可以防盗链!通过.ht…

服务器弄好了怎么做网站,服务器怎么做网站?服务器做网站步骤

在建站基础入门课程中,我们讲了,我们建一个网站需要域名、主机、程序。如果建小型网站,主机的选择可以使用虚拟主机,如果建中大型网站或者同时建多个网站,通常会选择服务器。对于一些建网站新手,对于服务器…

【iOS资源推荐】那些我看过的书,视频,网站,博客(持续更新)

由于很多新手都有选择恐惧症,所以这里推荐的东西,我尽量少而精 1.视频 这个不用说,斯坦福大学的教程不管是权威性,还是新颖程度都是No1. 斯坦福大学公开课:iOS 7应用开发,这个是OC http://v.163.com/speci…

html如何制作响应式网站,使用HTML和CSS构建响应式网站布局

大多数现代网站使用响应式网页设计,现在您必须考虑实际反应的意义,响应式网站可以适应不同的屏幕尺寸,并可以相应地调整其设计和布局。在本教程中,我们将学习如何使用HTML和CSS进行响应式网站设计,但首先,我…

网站服务器防扫描目录,服务器安全:添加Nginx规则防止服务器被恶意机器人扫描...

自己购买服务器搭建网站就涉及到一个服务器安全问题,虽然你自己不知道,但是每天服务器都在被一些机器人扫描。本文奶爸给大家分享几个Nginx的规则可以防止服务器被扫描。1、禁止默认通过IP访问服务器每台服务器都有一个IP地址,而一些机器人会…

网站经常间歇性访问不了_为什么Site网站首页不在第一位?应该如何解决?

为什么Site网站首页不在第一位?很多站长看到这个问题都会心发慌以为网站是否是被降权了,今天我就来彻底给大家分析一下。一、site网站首页不在第一位不一定是降权如下图,该网站site首页在第二位。但是该网站是没有降权的,网站的排…

想要导航首页提示_21个网站首页设计技巧

您的首页设置了您的网站和品牌的第一印象,因此您想要正确的设计。无论您是打算重新设计网站还是第一次启动公司的网站,请牢记以下21个提示。1.立即弄清楚您的报价尽管在设计时我们倾向于将重点放在图形上而不是文本上,但是在计划首页上的标头…

可以发外链的网站_外贸企业建站:外贸网站建站该怎么做外链?

外贸企业建站:外贸网站建站该怎么做外链?外贸网站建设并不是说建完了就没事了的,现如今外贸行业遭遇很大的挑戰,市场竞争激烈,假如网站不做优化得话,这么是非常容易被极易淘汰掉的。而做网站优化选取发外链…

开发常用的几个免费网站,值得收藏

在开发的时候,想记住所有的单词基本是不可能的,所以就需要进入文档,只要理清需求能做出来,就很不差了!! 1.百度,俗称度娘,有不懂的就问百度,有问必答,跳转 …

云速建站_【云速建站】网站建设经验之谈

一.简介作为一个混迹于华为云社区多年的准研究生,两年来亲眼见到华为云开发的不断成长,记得最早接触到的一款产品是modelArts,极大简化了小型企业在深度学习领域开发所需要的成本,甚至不需要找专门的深度学习工程师,即…

用Python暴力破解网站登录密码(带token验证)

测试靶机为Pikachu漏洞练习平台暴力破解模块下的 “token防爆破?” 春节期间歇了一阵子,吃睡玩看小说。写这个脚本的起因是因为burp设置带token的暴力破解我只会用pitchfork草叉模式,要是用cluster bomb集束炸弹模式笛卡儿积那样就不会了,所…