当前位置: 首页 > ops >正文

Nginx网站服务

这里写目录标题

    • 一. 基于授权的访问控制
      • 1. 简介
      • 2. 基于授权的访问控制步骤
        • (1)使用htpasswd生成用户认证文件
        • (2)修改文件权限
        • (3)修改主配置文件
        • (4)检测语法、重启服务
        • (5)用浏览器访问网站,检测控制效果
    • 二. 基于客户端的访问控制
      • 1. 简介
      • 2. 基于客户端的访问控制步骤
        • (1)修改主配置文件
    • 三. Nginx虚拟主机
      • 1. 基于域名的虚拟主机
        • (1) 设置客户端域名解析
        • (2)准备测试目录和网页
        • (3)修改配置文件
        • (4)测试
      • 2. 基于IP的虚拟主机
        • (1)为服务器设置多个ip地址
        • (2)修改配置文件,添加虚拟IP
        • (3)测试
      • 3. 基于端口的虚拟主机
        • (1)选择端口映射同一IP
        • (2)测试
    • 四. LNMP架构部署及应用
      • 1. 安装PHP解析环境
        • (1)编译安装PHP
        • (2)安装后的调整
        • (3)安装ZendGuardLoader
      • 2. 配置Nginx支持PHP环境
        • (1)启用php-fpm进程
        • (2)配件Nginx支持PHP解析
        • (3)PHP测试
      • 2. 在LNMP平台中部署Web应用
        • (1)下载并部署程序代码
        • (2)创建数据库
        • (3)安装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 文件,用户名是 test,密码输入 2 次。在passwd.db 中生成用户和密码的密文

在这里插入图片描述
在这里插入图片描述

(2)修改文件权限

修改密码文件权限为 400,将所有者改为 nginx,设置 Nginx 的运行用户能够读取

在这里插入图片描述

(3)修改主配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

(4)检测语法、重启服务

在这里插入图片描述

(5)用浏览器访问网站,检测控制效果

在这里插入图片描述

二. 基于客户端的访问控制

1. 简介

基于客户端的访问控制是通过客户端 IP 地址,决定是否允许对页面访问。Nginx 基于客户端的访问控制要比 Apache 简单,规则如下:

  • deny IP/IP段:拒绝某个IP或IP段的客户端访问

  • allow IP/IP段:允许某个IP或IP段的客户端访问

  • 规则从上往下执行,如匹配则停止,不再往下匹配

2. 基于客户端的访问控制步骤

(1)修改主配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述

三. Nginx虚拟主机

利用虚拟主机,不用为每个要运行的网站提供一台单独的 Nginx 服务器或单独运行一组 Nginx 进程,虚拟主机提供了在同一台服务器,同一组 Nginx 进程上运行多个网站的功能。跟 Apache 一样,Nginx 也可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机

使用 Nginx 搭建虚拟主机服务器时,每个虚拟 Web 站点拥有独立的“server{}”配置段,各自监听的 IP 地址、端口号可以单独指定,当然网站名称也是不同的。

1. 基于域名的虚拟主机

(1) 设置客户端域名解析

修改hosts 文件,加入www.benet.com 和 www.accp.com 这两个域名

在这里插入图片描述

(2)准备测试目录和网页

在这里插入图片描述

(3)修改配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(4)测试

在这里插入图片描述

2. 基于IP的虚拟主机

一台主机如果有多个 IP 地址,可以设置每一个 IP 对应一个站点。主机安装多个网卡可以有多个 IP,这里采用虚拟 IP 的方式使主机有多个 IP

(1)为服务器设置多个ip地址

在这里插入图片描述

(2)修改配置文件,添加虚拟IP
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

(3)测试

在这里插入图片描述

3. 基于端口的虚拟主机

(1)选择端口映射同一IP
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

(2)测试

在这里插入图片描述

四. LNMP架构部署及应用

LAMP 平台是目前应用最为广泛的网站服务器架构,其中“A”对应着 Web 服务软件 Apache。随着 Nginx 在企业中的使用越来越多,LNMP(或 LEMP)架构也越老越受到企业的青睐。

1. 安装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是一个压缩和解压模块

在这里插入图片描述

注意:

  • –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

在这里插入图片描述

在这里插入图片描述

2. 配置Nginx支持PHP环境

(1)启用php-fpm进程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动、检查端口

在这里插入图片描述

(2)配件Nginx支持PHP解析

调用本机的 php-fpm 进程

在这里插入图片描述
在这里插入图片描述

(3)PHP测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 在LNMP平台中部署Web应用

(1)下载并部署程序代码

在这里插入图片描述
在这里插入图片描述

(2)创建数据库

在这里插入图片描述

(3)安装Web应用

访问地址:http://192.168.10.101/bbs/install/index.php

在这里插入图片描述

http://www.xdnf.cn/news/7807.html

相关文章:

  • AI+MCP 自动发布小红书笔记
  • 【基础】Windows开发设置入门9:WSL 2 上的 Docker 容器
  • 基于Go语言的恶意软件通过Redis配置滥用向Linux主机部署XMRig挖矿程序
  • [论文精读]Ward: Provable RAG Dataset Inference via LLM Watermarks
  • 数据库健康监测器(BHM)实战:如何通过 HTML 报告识别潜在问题
  • Android OkHttp控制链:深入理解网络请求的流程管理
  • 动手学习深度学习V1.1 chapter2 (2.1-2.2)
  • 读一本书第一遍是快读还是细读?
  • 物理机做完bond后network服务重启失败
  • IntelliJ IDEA 接入 DeepSeek帮助你更好编码
  • net Core》》包与库 LibMan、NPM
  • 从加密到信任|密码重塑车路云一体化安全生态
  • 【Redis】二、Redis常用数据类型命令学习
  • 电感在断开的时候会按原来的电流方向流动这是什么定理?
  • Baklib内容中台的构建要点是什么?
  • 【性能测试】jvm监控
  • 前端JavaScript学习-动态编码-基础
  • 【每周一个MCP】:将pytdx封装成MCP
  • NFM算法解析:如何用神经网络增强因子分解机的特征交互能力?
  • 基于Qt的app开发第十天
  • 每日leetcode
  • opencv的图像卷积
  • 物联网相关词汇
  • Pandas:数据分析步骤、分组函数groupby和基础画图
  • matlab二维随机海面模拟
  • C++之模板进阶(探索C++模板:非类型参数与特化技巧)
  • Linux网络 网络基础一
  • 山东大学高级程序设计期末复习
  • BERT、GPT-3与超越:NLP模型演进全解析
  • 大语言模型与人工智能:技术演进、生态重构与未来挑战