Web集群-Nginx(三)
今日内容:
1、搭建高检视频下载站点
2、动态网站架构(部署一份开发的PHP代码)
一、搭建高清视频下载站点
目标:提供网页目录结构,类似:清华大学开源软件镜像站
要求:
- 浏览器打开后,显示目录结构(如上图)。
- 增加svip功能
- 增加统计功能,统计nginx服务的状态,访问情况
1.1 站点基本配置
配置要求:
- 域名:v.oldboylinux.cn
- 站点目录: /app/code/v/
- touch 几个文件即可
- 自动索引功能(列表站点目录的功能),首页文件不存在
其中自动索引功能需要用到autoindex模块
使用方法 |
功能 |
autoindex on ; |
开启目录索引功能(显示站点目录下的文件的列表,首页文件不存在.) |
autoindex_localtime on; |
显示本地时间. |
autoindex_exact_size off; |
是否显示精确的文件的大小. off表示以人类可读形式显示大小 |
配置如下:
准备文件
reload服务,设置hosts访问
1.2 增加VIP认证功能
需求:
- 增加一个svip目录,里面创建文件.
- 增加认证功能(用户名和密码).
- 只要用户访问的路径中包含VIP资源,提示输入密码
认证功能,需要使用到auth_basic模块
实现:创建密码文件
虚拟主机配置文件修改:
检查语法
创建svip目录
浏览器访问,提示输入密码
密码正确,访问成功
1.3 增加统计功能
要求:
- 显示nginx状态信息,未来用于监控nginx
- 熟练使用状态模块
显示nginx的状态信息,需要用到stub_status模块
1.3.1 统计功能配置
配置文件追加status模块
浏览器访问
1.3.2 状态模块指标说明
ngx状态模块中的指标说明 |
说明 |
说明 |
Active connections |
当前已经建立的连接数(est)和等待数量 |
体现:ngx并发 |
server accepts |
已经接收到客户端的连接总数. |
|
handled |
服务端已经处理的连接. |
|
requests |
客户端发出请求的总数. |
|
reading |
正在读取的请求头连接数量 |
|
writing |
正在进行的响应的连接数量 |
|
waiting |
排队数量 |
排队情况 |
1.3.3 网页压力测试
在mn01使用ab工具做网页压力测试
查看网页nginx状态信息,请求处理不断增多
1.4 nginx模块小结
目前接触到的一些nginx模块
模块 |
核心指令 |
重要程度 |
目录索引模块 |
autoindex on; |
※ |
认证功能模块 |
auth_basic_user_file; |
※ |
访问控制模块 |
allow, deny |
※※※ |
状态模块 |
stub_status |
※※※※※ |
ngx核心模块 |
root, location, err_log, server_name, listen |
※※※※※ |
ngx日志模块 |
access_log_format |
※※※※ |
二、动态网站架构
案例:部署一份开发的php代码(wordpress网站)
要求:开发书写了一个php代码发给我们部署
- 测试能否直接部署到nginx中?
- 需要什么服务,是什么原理?
- 准备服务并测试。
- 部署代码。
2.1 概述
了解什么是动态、静态网站
网站架构 |
说明与特点 |
性能 |
一句话说明 |
静态网站 |
网站仅仅包含:html、css样式、js脚本、图片、视频…等ngx可以直接处理的静态资源. |
只需要web服务器即可;nginx,可以承受较 高的访问量;不支持动态的功能,如:注册,、论。静态网站功能单一 |
浏览器端解析(客户端解析),服务 端仅仅负责发送. |
动态网站 |
动态网站一般是通过开发语言实现如:java、php、python、Golang等 |
动态资源页面需要服务器进行处理,如nginx+php/tomcat+数据库,处理后把结果返回给用户. |
动态请求需要服务端进行处理与解 析,把结果给用户 |
如何区分静态资源和动态资源
- 通过url可以初步判断网站的类型
- url中包含
&
或?
一般都是动态网站
2.2 常见动态网站架构
常见架构如下:
- PHP: LNMP(LEMP), LAMP, WNMP/WAMP (P—>PHP,W—>Windows,A—>Apache)
- Java: LNMT(Tomcat,Jetty,Weblogic,Jboss)
- Python: LNMP(Python,uwsgi)
- Golang: LNMG(Golang)
- C/C++: LNM?……..
LNM是什么意思?
- Linux 系统
- Nginx Web服务 Engine X
- MySQL/MariaDB 数据库
也有LAMP和WNMP:
- LAMP A —> apache 目前很少使用
- WNMP/WAMP W —> Windows 一般开发使用
2.3 LNMP架构细节
2.3.1 LNMP流程图
Nginx处理静态请求流程
Nginx处理动态请求流程
2.3.2 数据库
数据库基本概念: 库,表,字段,记录 知晓所属关系即可.
库:database,相当于一个excel文件
表:table,相当于excel文件中的一个sheet(表格)
字段:列,字段名字(某列的名字)
记录:行,某个数据
实操:
创建数据库服务器 10.0.0.51/172.16.1.51
a) 安装
安装mariadb数据库
数据库安全配置
进入数据库内部
b) 数据库查找-基本
c) 创建数据库
d) 删除数据库
e) 创建wordpress数据库
创建
测试
补充:
程序代码怎么连接数据库?
2.3.2 PHP
a) 安装
在web01操作
案例选择php 7.x,在生产环境中,需要根据开发书写代码环境准备即可.
b) php用户设置
php用户与nginx统一,统一为nginx
2.3.3 nginx配置
配置信息如下
2.3.4 部署wordpress
ngxin虚拟主机
浏览器访问:http://blog.oldboylinux.cn,进入配置页面
设置数据库信息
遇到不能写入wp-config.php文件的问题
创建该文件,把内容粘贴进去
再点击Run the installation,会来到welcome界面
设置博客标题、账户、密码等信息
设置完,在进入,来到登陆界面
登录后的界面
2.4 LNMP排错与调试方法
2.4.1 测试nginx + php静态页面
仍以blog虚拟主机为载体,设置如下php文件作为网站内容
访问:http://blog.oldboylinux.cn/info.php
2.4.2 测试ngxin + php动态页面
配置界面
测试