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

nginx 核心功能

目录

一、基于授权的访问控制

1. 使用 htpasswd 生成用户认证文件

2. 修改 Nginx 主配置文件

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

三、Nginx 虚拟主机

1. 基于域名的虚拟主机

2. 基于 IP 的虚拟主机

3. 基于端口的虚拟主机

四、LNMP 架构部署及应用

1. 安装 MariaDB

2. 安装并配置 PHP


一、基于授权的访问控制

1. 使用 htpasswd 生成用户认证文件

htpasswd可用于创建和管理用于基本认证的用户密码文件。执行以下命令来创建一个名为htpasswd.users的文件,并添加一个名为testuser的用户:

htpasswd -c /etc/nginx/htpasswd.users testuser

执行该命令后,会提示你输入testuser的密码。

2. 修改 Nginx 主配置文件

要在 Nginx 中启用基于授权的访问控制,需要在配置文件里添加相关配置。以下是示例配置,假设要保护/protected路径:

server {listen 80;server_name example.com;location /protected {auth_basic "Restricted Access";auth_basic_user_file /etc/nginx/htpasswd.users;}
}

输入用户名及密码进行访问

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

可以通过allowdeny指令对特定 IP 地址或 IP 地址段进行访问控制。以下是示例配置

server {listen 80;server_name example.com;# 只允许特定 IP 地址访问allow 192.168.1.0/24;deny all;location / {# 其他配置}
}

三、Nginx 虚拟主机

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

1. 基于域名的虚拟主机

设置客户端域名解析并准备网站

在客户端的/etc/hosts文件中添加域名解析记录:

127.0.0.1  site1.example.com
127.0.0.1  site2.example.com

在 Nginx 的网站根目录下创建两个不同的网站目录和文件:

mkdir -p /var/www/site1
mkdir -p /var/www/site2
echo "This is site 1" > /var/www/site1/index.html
echo "This is site 2" > /var/www/site2/index.html

修改配置文件

server {listen 80;server_name site1.example.com;root /var/www/site1;index index.html;
}server {listen 80;server_name site2.example.com;root /var/www/site2;index index.html;
}

在浏览器中访问http://site1.example.comhttp://site2.example.com,分别查看不同的网站内容。

2. 基于 IP 的虚拟主机

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

假设你要为服务器添加两个额外的 IP 地址192.168.1.101192.168.1.102,可编辑网络配置文件。

修改 Nginx 配置文件

server {listen 192.168.1.101:80;root /var/www/ip_site1;index index.html;
}server {listen 192.168.1.102:80;root /var/www/ip_site2;index index.html;
}

重新加载 Nginx 配置后,通过不同的 IP 地址访问对应的网站。

3. 基于端口的虚拟主机

server {listen 8080;root /var/www/port_site;index index.html;
}

客户端验证时,在浏览器中访问http://example.com:8080来查看网站内容。

四、LNMP 架构部署及应用

LNMP 平台是目前应用最为广泛的网站服务器架构,

  • L:linux系统
  • N:nginx服务
  • M:mysql服务
  • P:php认证

1. 安装 MariaDB

使用联网的方式快速安装 MariaDB:

sudo apt update
sudo apt install mariadb-server

2. 安装并配置 PHP

编译安装的基本信息

sudo apt install php-fpm php-mysql

安装后的调整

编辑/etc/php/7.4/fpm/pool.d/www.conf(根据实际 PHP 版本调整),确保listen配置正确:

listen = /run/php/php7.4-fpm.sock

为 PHP 添加 Zend 优化模块

安装opcache

sudo apt install php-opcache

编辑/etc/php/7.4/fpm/php.ini(根据实际 PHP 版本调整),启用opcache

zend_extension=opcache.so
opcache.enable=1

配置 Nginx 支持 PHP 环境

server {listen 80;server_name example.com;root /var/www/html;index index.php index.html;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {fastcgi_pass unix:/run/php/php7.4-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

准备 PHP 页面代码

/var/www/html目录下创建一个info.php文件:

<?php
phpinfo();
?>

在浏览器中访问http://example.com/info.php,查看 PHP 信息页面。

相关文章:

  • 鸟笼效应——AI与思维模型【84】
  • 组件轮播与样式结构重用实验
  • Android开发——实现一个计算器
  • 利用3DMAX + Corona Renderer打造现代住宅逼真效果!
  • DotNet 入门:(一) 环境安装
  • MarkItDown:如何高效将各类文档转换为适合 LLM 处理的 Markdown 格式
  • 进程优先级以及切换调度
  • 得物 小程序 6宫格 分析
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)
  • opencv 直方图均衡化
  • AimRT 从零到一:官方示例精讲 —— 三、Executor示例.md
  • 【AI News | 20250429】每日AI进展
  • OpenCV 图形API(71)图像与通道拼接函数-----从图像(GMat)中裁剪出一个矩形区域的操作函数 crop()
  • gitee 如何修改提交代码的邮箱
  • 训练神经网络的批量标准化(使用 PyTorch)
  • 内核常见问题汇总
  • 计算机基础:二进制基础14,二进制加法
  • 某建筑石料用灰岩矿自动化监测
  • 海思vio模块学习
  • Android第五次面试总结之网络篇(修)
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高
  • 民生银行一季度净利127.42亿降逾5%,营收增7.41%
  • 郭继孚被撤销全国政协委员资格,此前为北京交通发展研究院长
  • 鄂湘赣“中三角”,能否走向文旅C位?
  • “不意外”和“不遗余力”,直击上海商超对接外贸企业
  • 人民日报头版:上海纵深推进浦东高水平改革开放