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

五十六、【Linux系统nginx服务】nginx虚拟主机实现

虚拟主机技术全景图

Nginx虚拟主机
基于域名
基于IP
基于端口
多域名共享IP
Host头识别
SEO友好
独立IP服务
直接IP访问
SSL证书绑定
端口区分服务
内部服务隔离
临时环境部署

虚拟主机类型深度对比

特性基于域名基于IP基于端口最佳适用场景
IP资源需求1个IP多个IP1个IP域名型:IP资源紧张 IP型:需要独立IP服务
访问方式域名访问IP直接访问IP:端口访问IP型:内部系统直接调用
SSL支持支持SNI原生支持支持IP型:传统SSL证书绑定
SEO影响无影响无独立域名需处理端口规范域名型:公开网站首选
配置复杂度★★☆☆☆★★★☆☆★★☆☆☆端口型:测试环境快速部署
维护成本端口型:临时服务
安全性依赖域名解析直接暴露IP端口可隐藏IP型:减少DNS依赖风险
典型应用企业官网集群独立SSL服务开发测试环境按需求选择

功能作用详解

1. 基于域名的虚拟主机

功能说明

  • 同一IP和端口(80)服务多个网站
  • 通过HTTP请求头中的Host字段区分站点
  • 需配置DNS解析或本地hosts文件

应用场景

  • 单服务器托管多个域名网站
  • 节省IP地址资源

2. 基于IP的虚拟主机

功能说明

  • 每个网站使用独立的IP地址
  • 不依赖域名解析,直接通过IP访问
  • 需服务器配置多个IP地址

应用场景

  • 需要直接IP访问的服务
  • SSL证书绑定IP的特殊需求

3. 基于端口的虚拟主机

功能说明

  • 同一IP通过不同端口提供多服务
  • 需在URL中显式指定端口号
  • 需防火墙开放对应端口

应用场景

  • 测试环境运行多个服务
  • 内部管理接口隔离
  • HTTP服务与API服务分离

一、基础环境准备

# 安装Nginx
[root@localhost ~]# yum install nginx -y# 创建站点目录
[root@localhost ~]# mkdir -p /var/www/{domain,ip,port}# 创建测试页面
[root@localhost ~]# echo "Domain-based Virtual Host" > /var/www/domain/index.html
[root@localhost ~]# echo "IP-based Virtual Host" > /var/www/ip/index.html
[root@localhost ~]# echo "Port-based Virtual Host" > /var/www/port/index.html

二、三种虚拟主机配置

1. 基于域名 (example.com / test.com)

# 创建域名配置
[root@localhost ~]# cat > /etc/nginx/conf.d/domain.conf <<EOF
server {listen 80;server_name example.com;root /var/www/domain;index index.html;
}
server {listen 80;server_name test.com;root /var/www/domain;  # 同一服务器不同内容目录
}
EOF

2. 基于IP (192.168.1.100 / 192.168.1.200)

# 添加临时IP地址(永久IP需修改网络配置)
[root@localhost ~]# ip addr add 192.168.1.200/24 dev eth0# 创建IP配置
[root@localhost ~]# cat > /etc/nginx/conf.d/ip.conf <<EOF
server {listen 192.168.1.100:80;root /var/www/ip;index index.html;
}
server {listen 192.168.1.200:80;root /var/www/ip;  # 同目录演示
}
EOF

3. 基于端口 (8080 / 8081)

# 创建端口配置
[root@localhost ~]# cat > /etc/nginx/conf.d/port.conf <<EOF
server {listen 8080;server_name localhost;root /var/www/port;index index.html;
}
server {listen 8081;server_name localhost;root /var/www/port;  # 同目录演示
}
EOF# 开放防火墙端口
[root@localhost ~]# firewall-cmd --add-port={8080,8081}/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

4. 重载Nginx配置

[root@localhost ~]# nginx -t  # 测试配置
[root@localhost ~]# systemctl reload nginx

三、验证配置

# 域名测试(需配置hosts或DNS解析)
[root@localhost ~]# curl -H "Host: example.com" http://localhost
[root@localhost ~]# curl -H "Host: test.com" http://localhost# IP测试
[root@localhost ~]# curl http://192.168.1.100
[root@localhost ~]# curl http://192.168.1.200# 端口测试
[root@localhost ~]# curl http://localhost:8080
[root@localhost ~]# curl http://localhost:8081

四、命令总结表格

演示命令功能描述关键参数说明
server_name example.com;设置域名虚拟主机在80端口区分不同域名
listen 192.168.1.100:80;设置IP虚拟主机绑定指定IP地址
listen 8080;设置端口虚拟主机通过端口区分站点
firewall-cmd --add-port=8080/tcp开放防火墙端口允许外部访问非标准端口
curl -H "Host: example.com" http://localhost域名访问测试模拟域名请求

五、故障排查命令

命令功能
nginx -t检查配置文件语法
journalctl -u nginx查看服务日志
`ss -tulnpgrep nginx`
curl -Iv http://example.com跟踪请求头

六、性能优化与安全加固

优化方向域名型IP型端口型实施建议
连接复用keepalivekeepalivekeepalive统一开启
缓存策略按域名独立按IP独立按端口独立独立缓存区
压缩优化按内容类型按内容类型按内容类型文本资源必开
访问控制域名白名单IP白名单IP+端口控制多层防护
日志分割按域名分割按IP分割按端口分割便于审计
http://www.lryc.cn/news/614573.html

相关文章:

  • InfluxDB 权限管理与安全加固(一)
  • leetcode热题——有效的括号
  • 安全合规1--实验:ARP欺骗、mac洪水攻击、ICMP攻击、TCP SYN Flood攻击
  • C++AVL树
  • windows自动获取wsl IP,并开启端口转发。
  • 供应链项目中产品的ABC XYZ分类法弊端(十)
  • 常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 RPC
  • [科普] AI加速器架构全景图:从GPU到光计算的算力革命
  • 【0基础3ds Max】主工具栏介绍(上)
  • [链表]142. 环形链表 II
  • Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害数值模拟与预警中的应用(388)
  • 大模型性能测试实战指南:从原理到落地的全链路解析
  • 【Day 19】Linux-网站操作
  • 小程序难调的组件
  • Vite 深度解析:现代前端开发引擎
  • AI 记忆管理系统:工程实现设计方案
  • Introducing Visual Perception Token into Multimodal Large Language Model论文解读
  • 脚本统计MongoDB集合结构信息
  • 关于数据结构6-哈希表和5种排序算法
  • WSL安装MuJoco报错——FatalError: gladLoadGL error
  • Vue框架总结案例
  • HTML <picture> 元素:让图片根据设备 “智能切换” 的响应式方案
  • OpenAI 开源 GPT-OSS:1200亿参数推理模型上线,完全免费、商用可用,全民可控智能体时代正式开启!
  • 《前端60问:从设备判断到性能优化全解》
  • PeiQi网络安全知识文库PeiQi-WIKI-Book保姆式搭建部署教程
  • Nearest Smaller Values(sorting and searching)
  • 饿了么零售 sign 分析
  • lmbench在麒麟V10的编译测试
  • 水系热力图:制作化学污染物浓度值热力图
  • 深入理解 Java AWT Container:原理、实战与性能优化