Nginx核心功能

Nginx核心功能

基于授权的访问控制

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地址,对网站进行初始化

http://192.168.10.101/bbs/install/index.php


相关推荐
惜.己3 分钟前
Linux Shell编程(四)
linux·运维·服务器
hopetomorrow34 分钟前
学习路之uniapp --- 视频直播开发(在现有nginx服务器上搭建RTMP媒流体服务器)
学习·nginx·uni-app
love530love1 小时前
【笔记】PyCharm 中创建Poetry解释器
运维·人工智能·windows·笔记·python·pycharm·conda
黑牛先生1 小时前
vscode连接本地Ubuntu
linux·运维·ubuntu
网硕互联的小客服2 小时前
为什么服务器突然变慢?从硬件到软件的排查方法
linux·运维·网络·安全
从零开始学习人工智能3 小时前
Nginx 强制 HTTPS:提升网站安全性的关键一步
运维·nginx·https
努力的搬砖人.4 小时前
Docker 镜像打包到本地
运维·docker·容器
Stephen·You4 小时前
(已解决:基于WSL2技术)Windows11家庭中文版(win11家庭版)如何配置和使用Docker Desktop
运维·docker·容器
UFIT5 小时前
postgresql日常维护
运维·服务器