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


相关推荐
Joy T4 小时前
从 Nginx 到 Gateway 再到微服务:一次 AI 请求的完整链路
nginx·微服务·gateway·controller·路由转发·ai service·接口错误排查
mengge.cloud4 小时前
Redis
运维·服务器·数据库·redis·缓存·云计算
Smoothcloud润云4 小时前
GPU服务器租用实例DNS与HTTPS下载排障实战
大数据·运维·服务器·人工智能·https·gpu算力
小匠石钧知4 小时前
07_在k8s集群中安装ingress-nginx
nginx·容器·kubernetes·ingress
Apipi*4 小时前
30天速通Linux 第五章Linux 进程管理
linux·运维·服务器
杨云龙UP4 小时前
PostgreSQL 四种常见部署模式快速理解:单实例、流复制、repmgr、Patroni
linux·运维·数据库·postgresql·流复制·高可用ha
白帽攻防录4 小时前
SRC 挖洞:TanStack Start 服务器函数 XSS 深度复盘,CVE-2026-102989 怎么窃取用户会话
运维·服务器·网络安全·xss
资深电气设计4 小时前
ABB AFC/AF/AX系列接触器在数据中心液冷机组中的负载适配技术
运维·物联网·创业创新·业界资讯
.冰块.5 小时前
MySQL下篇 运维实战:备份恢复 + 主从复制 + MHA 高可用,含完整拓扑
运维·mysql·读写分离·高可用·主从复制·mha
智商网输送线配件5 小时前
非标自动化零部件采购避坑指南:从零散补货到一站式协同的实战路径
运维·自动化