一、基于授权的访问控制
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 文件,用户名是 test,密码输入 2 次。在passwd.db 中生成用户和密码的密文。
(2)修改密码文件权限为 400,将所有者改为 nginx,设置 nginx 的运行用户能够读取
(3)修改主配置文件 nginx.conf,添加相应认证配置项
(4)检测语法、重启服务
(5)用浏览器访问网址,检验控制效果
二、基于客户端的访问控制
1:基于客户端的访问控制简介
基于客户端的访问控制是通过客户端 ip 地址,决定是否允许对页面访问。
nginx 基于客户端的访问控制要比 apache 简单,规则如下:
- deny ip/ip段:拒绝某个ip或ip段的客户端访问。
- allow ip/ip段:允许某个ip或ip段的客户端访问。
- 规则从上往下执行,如匹配则停止,不再往下匹配
2:基于客户端的访问控制步骤
(1)修改主配置文件 nginx.conf,添加相应配置项
三、nginx 虚拟主机
利用虚拟主机,不用为每个要运行的网站提供一台单独的 nginx 服务器或单独运行一组 nginx 进程,虚拟主机提供了在同一台服务器,同一组 nginx 进程上运行多个网站的功能。跟 apache 一样,nginx 也可以配置多种类型的虚拟主机,分别是基于 ip 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机
使用 nginx 搭建虚拟主机服务器时,每个虚拟 web 站点拥有独立的“server{}”配置段,各自监听的 ip 地址、端口号可以单独指定,当然网站名称也是不同的。
1:基于域名的虚拟主机
(1)设置客户端域名解析
修改hosts 文件,加入www.benet.com 和 www.accp.com 这两个域名
(2)准备各个网站的目录和测试首页
(3)修改配置文件
(4)测试
2:基于 ip 的虚拟主机
一台主机如果有多个 ip 地址,可以设置每一个 ip 对应一个站点。主机安装多个网卡可以有多个 ip,这里采用虚拟 ip 的方式使主机有多个 ip。
(1)为服务器设置多个ip地址
nmcli是networkmanager的命令行工具,用于管理linux系统中的网络连接
(2)修改 nginx的配置文件,使基于 ip 的虚拟主机生效
(3)访问两个ip网站,测试页面是否生效
3:基于端口的虚拟主机
(1)选择系统中不使用的端口,多个端口映射到同一 ip 地址
(2)检测端口是否运行正常
(3)分别访问 2 个端口地址
四、lnmp 架构部署及应用
众所周知,lamp 平台是目前应用最为广泛的网站服务器架构,其中“a”对应着 web 服务软件 apache。随着 nginx 在企业中的使用越来越多,lnmp(或 lemp)架构也越老越受到企业的青睐。
1:编译安装 mariadb服务
把数据库安装到第二台服务器192.168.10.102中
开启mysql
给mysql密码(默认没密码)
进入mysql
给root用户提权为后续连接php做铺垫
刷新策略
2:安装 php 解析环境
(1)编译安装 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是一个压缩和解压模块
编译php
注意:
–with-mysqli=mysqlnd需要用ip地址的方式连接数据库,既可以是php和mysql装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101连接需要授权,哪怕连接本地数据库。
–with-mysqli=/usr/bin/mysql_config需要用localhost连接数据库,只能用于本地连接,也就是php和mysql装在同一个服务器上
(2)安装后调整
(3)安装 zendguardloader
3:配置 nginx 支持 php 环境
(1)启用 php-fpm 进程
(2)配置 nginx 支持 php 解析
调用本机的 php-fpm 进程
(3)php 页面访问测试
关mysql防火墙
4.在 lnmp 平台中部署 web 应用
(1):下载并部署程序代码
(2):创建数据库
(3):安装 web 应用
访问服务器 url 地址,对网站进行初始化
http://192.168.10.101/bbs/install/index.php
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论