Nginx核心功能
- 基于授权的访问控制
- 基于客户端的访问控制
- [Nginx 虚拟主机](#Nginx 虚拟主机)
- LNMP架构部署及应用
-
- 编译安装Mysql服务
- 安装PHP解析环境
- [配置 Nginx 支持 PHP 环境](#配置 Nginx 支持 PHP 环境)
-
- [(1)启用 php-fpm 进程](#(1)启用 php-fpm 进程)
- [(2)配置 Nginx 支持 PHP 解析](#(2)配置 Nginx 支持 PHP 解析)
- (3)php页面访问测试
- 在LNMP平台中部署Web应用
基于授权的访问控制
1:基于授权的访问控制简介
Nginx 与 Apahce 一样,可以实现基于用户授权的访问控制,当客户端想要访问相应网站或者目录时,要求用户输入用户名和密码才能正常访问,配置步骤与 Apache 基本一致。概括为以下几个步骤。
生成用户密码认证文件。
修改主配置文件相对应目录,添加认证配置项。
重启服务,访问测试。
2:基于授权的访问控制步骤
(1)使用 htpasswd 生成用户认证文件
使用 htpasswd 生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools 软件包,用法与 Apache 认证时方式相同,如:htpasswd -c/usr/local/nginx/passwd.db test。在/usr/local/nginx/目录下生成了 passwd.db文件,用户名是 zhangsan,密码输入 2 次。在 passwd.db 中生成用户和密码的密文。
(2)修改密码文件权限为400,将所有者改为nginx,设置nginx的运行用户能够读取
(3)修改主配置文件nginx.conf,添加相应认证配置项

(4)检测语法、重启服务
(5)用浏览器访问网址,检测控制效果
基于客户端的访问控制
1:基于客户端的访问控制简介
基于客户端的访问控制是通过客户端 IP 地址,决定是否允许对页面访问。Nginx 基于客户端的访问控制要比 Apache 简单,规则如下:
deny IP/IP 段:拒绝某个|P 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 |P 或 IP 段的客户端访问。规则从上往下执行,如匹配则停止,不再往下匹配。
2:基于客户端的访问控制步骤
修改主配置文件的nginx.conf,添加相应配置项
Nginx 虚拟主机
利用虚拟主机,不用为每个要运行的网站提供一台单独的 Nginx 服务器或单独运行一组 Nginx 进程,虚拟主机提供了在同一台服务器,同一组 Nginx 进程上运行多个网站的功能。跟 Apache 一样,Nginx 也可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。
使用 Nginx 搭建虚拟主机服务器时,每个虚拟 web 站点拥有独立的"server{}"配置段,各自监听的 IP 地址、端口号可以单独指定,当然网站名称也是不同的。
基于域名的虚拟主机
(1)设置客户端域名解析
修改hosts文件,加入www.aaa.com和www.bbb.com这两个域名
(2)准备各个网站的目录和测试首页
(3)修改配置文件
基于IP的虚拟主机
一台主机如果有多个地址,可以设置每一个IP对应一个站点。主机安装多个网卡可以有多个IP,这里采用虚拟ip的方式使主机有多个ip
(1)为服务器设置多个IP

(2)修改Nginx的配置文件,使基于IP的虚拟主机生效
(3)访问两个IP网站,测试页面是否生效

基于端口的虚拟主机
(1)选择系统中不适用的端口,多个端口映射到同一个IP地址
(2)检测端口是否运行正常
(3)分别访问两个端口地址
LNMP架构部署及应用
编译安装Mysql服务
安装PHP解析环境
编译安装PHP

libxml2-devel :libxml是一个用来解析XML文档的函数库
libjpeg-devel 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现
libpng-devel libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作
GD 指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理
zlib-devel Zlib是一个压缩和解压模块
注意:
--with-mysqli=mysqlnd需要用ip地址的方式连接数据库,既可以是php和mysql装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101连接需要授权,哪怕连接本地数据库。
--with-mysqli=/usr/bin/mysql_config需要用localhost连接数据库,只能用于本地连接,也就是php和mysql装在同一个服务器上
安装后调整

安装ZendGuardLoader
配置 Nginx 支持 PHP 环境
(1)启用 php-fpm 进程

pid = run/php-fpm.pid
user = php
group = php
pm.max_children = 50 ##最多子进程数
pm.start_servers = 20 ##启动时开启的进程数
pm.min_spare_servers = 5 ##最少空闲进程数
pm.max_spare_servers = 35 ##最多空闲进程数
(2)配置 Nginx 支持 PHP 解析
调用本机的 php-fpm 进程

(3)php页面访问测试

在LNMP平台中部署Web应用
下载并部署程序代码


创建数据库

安装web应用
访问服务器url地址,对网站进行初始化