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

LNMP 架构部署

目录

一、基于授权的访问控制

(一)功能简介

(二)配置步骤

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

(一)功能简介

(二)配置步骤

三、Nginx 虚拟主机

(一)基于域名的虚拟主机

(二)基于 IP 的虚拟主机

(三)基于端口的虚拟主机

四、LNMP 架构部署

(一)编译安装 MySQL

(二)安装 PHP 解析环境

(三)配置 Nginx 支持 PHP

(四)部署 Web 应用(以 Discuz 为例)

总结


 

一、基于授权的访问控制

(一)功能简介

Nginx 支持通过用户名和密码对访问特定目录或网站的客户端进行认证,配置逻辑与 Apache 相似,核心步骤包括生成认证文件、修改配置和重启服务。

(二)配置步骤
  1. 生成用户密码认证文件
  • 首先安装 ​​httpd-tools​​​(包含 ​​htpasswd​​ 工具):
yum -y install httpd-tools
  • 创建认证文件并添加用户(​​-c​​​ 表示首次创建文件,路径为 ​​/usr/local/nginx/passwd.db​​​,用户名为 ​​test​​):
htpasswd -c /usr/local/nginx/passwd.db test
  1. 设置文件权限与所有者
  • 确保只有 Nginx 运行用户可读取文件(假设 Nginx 用户为 ​​nginx​​):
chmod 400 /usr/local/nginx/passwd.db  # 只读权限
chown nginx /usr/local/nginx/passwd.db  # 所有者设为 nginx
  1. 修改 Nginx 主配置文件
    编辑 ​​​nginx.conf​​​,在目标 ​​location​​ 块中添加认证配置:
server {listen 80;server_name localhost;location / {root html;index index.html index.htm;auth_basic "secret";  # 认证提示信息auth_basic_user_file /usr/local/nginx/passwd.db;  # 认证文件路径}
}
  1. 验证配置并重启服务
nginx -t  # 检测语法正确性
systemctl restart nginx  # 重启 Nginx 使配置生效
  1. 访问测试 浏览器输入服务器 IP(如 ​​http://192.168.10.101​​),会弹出登录框,输入正确用户名密码即可访问。

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

(一)功能简介

通过 ​​deny​​​ 和 ​​allow​​ 规则,根据客户端 IP 或 IP 段控制访问,规则按顺序执行,匹配即停止。

(二)配置步骤

在 ​​location​​​ 块中添加 IP 过滤规则(示例:拒绝 ​​192.168.10.3​​,允许其他所有 IP):

location / {root html;index index.html index.htm;deny 192.168.10.3;  # 拒绝单个 IPallow all;  # 允许所有 IP(需放在拒绝规则之后)
}

保存配置后,执行 ​​nginx -t​​​ 和 ​​systemctl restart nginx​​ 生效。

三、Nginx 虚拟主机

(一)基于域名的虚拟主机
  1. 客户端域名解析
    修改本地 ​​​hosts​​​ 文件(Windows 在 ​​C:\Windows\System32\drivers\etc\hosts​​​,Linux 在 ​​/etc/hosts​​),添加:
192.168.10.101 www.benet.com
192.168.10.101 www.accp.com
  1. 准备网站目录与测试页面
mkdir -p /var/www/html/benet /var/www/html/accp  # 创建站点目录
echo "www.aaaaaaaa.com" > /var/www/html/benet/index.html  # 生成测试首页
echo "www.bbbbbbbbb.com" > /var/www/html/accp/index.html
  1. 配置 Nginx 虚拟主机
    在 ​​​nginx.conf​​​ 中添加两个 ​​server​​ 块,分别绑定不同域名和根目录:
server {listen 80;server_name www.benet.com;access_log logs/www.benet.com.access.log;charset utf-8;location / {root /var/www/html/benet;index index.html;}
}server {listen 80;server_name www.accp.com;access_log logs/www.accp.com.access.log;charset utf-8;location / {root /var/www/html/accp;index index.html;}
}
  1. 测试访问 浏览器输入 ​​http://www.benet.com​​​ 和 ​​http://www.accp.com​​,应显示对应站点内容。

(二)基于 IP 的虚拟主机
  1. 添加虚拟 IP 地址
    通过复制网卡配置文件创建虚拟网卡(以 ​​​ens33​​ 为例):
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0  # 创建第一个虚拟 IP 配置
cp ifcfg-ens33 ifcfg-ens33:1  # 创建第二个虚拟 IP 配置

编辑 ​​ifcfg-ens33:0​​​ 和 ​​ifcfg-ens33:1​​​,分别设置 ​​IPADDR​​​ 为 ​​192.168.10.151​​​ 和 ​​192.168.10.152​​​,其他参数保持一致(如网关、DNS)。
重启网络服务使配置生效:

nmcli connection reload
nmcli connection up ens33
  1. 配置 Nginx 绑定 IP
    在 ​​​nginx.conf​​​ 中为每个 IP 绑定独立的 ​​server​​ 块:
server {listen 192.168.10.151:80;server_name www.benet.com;# 其他配置(如 root 目录)
}server {listen 192.168.10.152:80;server_name www.accp.com;# 其他配置
}
(三)基于端口的虚拟主机

在 ​​nginx.conf​​ 中为同一 IP 分配不同端口(如 8080 和 8888):

server {listen 192.168.10.101:8080;server_name www.benet.com;# 端口 8080 站点配置
}server {listen 192.168.10.101:8888;server_name www.accp.com;# 端口 8888 站点配置
}

访问时需在 URL 中添加端口(如 ​​http://192.168.10.101:8080​​)。

四、LNMP 架构部署

(一)编译安装 MySQL
  1. 准备依赖环境
yum install -y autoconf ncurses-devel gcc-c++ perl-Module-Install cmake
  1. 解压并编译 MySQL
tar -zxvf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DSYSCONFDIR=/etc
make && make install
  1. 初始化与配置
cp support-files/my-default.cnf /etc/my.cnf  # 复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld  # 添加服务脚本
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld && chkconfig mysqld on  # 加入系统服务
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile  # 添加环境变量
. /etc/profile  # 立即生效
  1. 创建用户与初始化数据库
groupadd mysql && useradd -M -s /sbin/nologin mysql -g mysql
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
systemctl start mysqld  # 启动服务
mysqladmin -u root password '123.com'  # 设置 root 密码
(二)安装 PHP 解析环境
  1. 安装依赖库
yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel
  1. 编译 PHP
tar -zxvf php-5.5.38.tar.gz
cd php-5.5.38
./configure \--prefix=/usr/local/php5 \--with-gd \--with-zlib \--with-mysql=/usr/local/mysql \--with-mysqli=/usr/local/mysql/bin/mysql_config \--with-config-file-path=/usr/local/php5 \--enable-mbstring \--enable-fpm \--with-jpeg-dir=/usr/lib
make && make install
(三)配置 Nginx 支持 PHP
  1. 启动 php-fpm 服务
cd /usr/local/php5/etc/
cp php-fpm.conf.default php-fpm.conf  # 复制配置模板
useradd -M -s /sbin/nologin php  # 创建 php 专用用户
vim php-fpm.conf  # 修改用户、进程数等配置(如 user=php, group=php)
/usr/local/sbin/php-fpm  # 启动服务
  1. Nginx 配置 PHP 解析
    在 ​​​server​​​ 块中添加 PHP 解析规则(匹配 ​​.php​​ 文件):
location ~ \.php$ {root /var/www/html;fastcgi_pass 127.0.0.1:9000;  # 指向 php-fpm 监听端口fastcgi_index index.php;include fastcgi.conf;
}
  1. 测试 PHP 页面
    创建测试文件 ​​​test1.php​​​(输出 PHP 信息)和 ​​test2.php​​​(测试数据库连接),访问 ​​http://服务器 IP/test1.php​​ 应显示 PHP 环境信息。
(四)部署 Web 应用(以 Discuz 为例)
  1. 准备程序文件
yum -y install unzip
unzip Discuz_X3.3_SC_UTF8.zip
mkdir -p /var/www/html/bbs && mv upload/* /var/www/html/bbs
chown -R php:php /var/www/html/bbs  # 赋予 php 用户权限
  1. 创建数据库
mysql -uroot -p  # 登录 MySQL
create database bbs;  # 创建数据库
grant all on bbs.* to runbbs@'127.0.0.1' identified by 'bbs123';  # 授权本地访问
grant all on bbs.* to runbbs@'localhost' identified by 'bbs123';
  1. 初始化安装 浏览器访问 ​​http://服务器 IP/bbs/install/index.php​​,按向导完成安装,配置数据库信息即可。

总结

本文详细介绍了 Nginx 的两种访问控制机制(用户认证与 IP 过滤)、三种虚拟主机配置(域名、IP、端口)以及 LNMP 架构的完整部署流程。通过这些配置,可实现服务器资源的安全控制、多站点高效管理及动态 Web 应用的稳定运行。实际应用中,需根据业务需求调整参数(如并发连接数、缓存策略),并定期更新组件以保障安全性和性能。

相关文章:

  • Django 中的路由系统
  • 实例与选项对象
  • 电子电路:电路设计都需要哪些公式?【电子电路设计常用公式总结】
  • 8.7 基于EAP-AKA的订阅转移
  • 性能诊断工具AWR配置策略与报告内容解析
  • 基于stm32LORA无线抄表系统仿真
  • 签约!京东云与契约锁达成战略合作,携手共推全程数智化解决方案
  • 用 Python 构建跨平台前端界面:深入解读 Flet 库
  • 进程的控制和调度上
  • [特殊字符] 数据+趋势分析:雷霆 vs 森林狼 G4|季后赛的博弈逻辑与内容运营的共通点
  • 使用electron创建应用程序的基础步骤
  • AI 让无人机跟踪更精准——从视觉感知到智能预测
  • 【IEEE出版| 高届数EI会议】第十届计算机与信息处理技术国际学术研讨会(ISCIPT 2025)
  • XCTF-web-file_include
  • MySQL主从复制深度解析:原理、配置与实战指南
  • 36. 编写异步webdriver接口请求客户端
  • Spring 框架深度解析
  • DSP F28M35H52C开发指南
  • 深入理解Nginx:详尽配置手册
  • CPG开源项目对比
  • 网站建设中的图片/今日头条官网首页
  • 能登上日本网站的代理服务器/seo职业
  • 扬州有什么做网站的公司/seo点石论坛
  • 网站建设专业特长/如何自己做网页
  • 企业内部的网站系统/美国站外推广网站
  • 无为县做互联网网站/百度推广销售