Nginx基于域名区分的多网站部署

 更新时间:2026年05月19日 09:27:02   作者:江上清风山间明月  
本文介绍了在生产环境中多网站部署时选择基于域名区分+统一使用80/443端口的优势,并解释了为什么基于端口区分方式不推荐用于生产环境,同时,还探讨了为什么80/443端口在Web服务中具有特殊地位,以及在不同场景下如何合理使用端口区分方式,需要的朋友可以参考下

生产环境几乎总是选择“基于域名区分 + 统一使用 80/443 端口”。来实现多网站部署

下面我从“为什么”、“两者可以同时使用”、“为什么 80/443 是标准”三个角度详细拆解。

一、总结结论

方式端口域名好坏
基于域名统一 80/443多个域名生产首选
基于端口不同端口一个 IP❌ 不方便、非标
基于端口 + 域名不同端口多个域名✅ 特殊场景可用

二、“基于域名区分”为什么比“基于端口”更好?

基于域名(推荐)

# 网站1
server {
    listen 80;
    server_name rent.example.com;
    root /opt/rentalhousing;
}
# 网站2
server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog;
}

用户访问:

http://rent.example.com   ✅
http://blog.example.com   ✅

特点:

  • 用户不用记端口
  • 可配 HTTPS(一个证书或不同证书)
  • 符合 Web 标准
  • 可无限扩展

基于端口(不推荐生产)

# 网站1
server {
    listen 8080;
    server_name _;
    root /opt/rentalhousing;
}

# 网站2
server {
    listen 8081;
    server_name _;
    root /var/www/blog;
}

用户访问:

http://你的IP:8080   ❌ 用户必须记端口
http://你的IP:8081

问题:

  • 体验极差
  • 无法使用 HTTPS(端口混乱)
  • SEO / 分享链接难看
  • 浏览器 / 防火墙 / 代理容易出问题

三、端口区分 + 域名可以同时用吗?

可以,但几乎不会这么用。

示例:

# 同一个域名通过不同端口访问不同应用
server {
    listen 80;
    server_name rent.example.com;
    root /opt/rentalhousing;
}

server {
    listen 8080;
    server_name rent.example.com;
    root /var/www/legacy;
}

问题:

  • 用户访问 http://rent.example.com:8080
  • 既不优雅、也不方便
  • 不如直接用不同域名或不同路径

结论:技术上可行,实践中不推荐

四、为什么 80 / 443 端口这么特殊?

原因说明
Web 标准浏览器默认请求 80(HTTP) / 443(HTTPS)
用户无感不需要输入 :3000:8080
HTTPS 统一证书、HSTS 都基于 80/443
防火墙友好几乎所有网络都放开 80/443

五、真实生产场景的对比(非常重要)

假设你有两个网站:

  • 系统:rent.com
  • 博客:blog.com

错误错误方案(端口区分)

rent.com    → 80
blog.com    → 8080

用户访问:

http://rent.com     ✅
http://blog.com:8080 ❌

没有人愿意访问 blog.com:8080

正确标准方案(域名区分)

rent.com    → 80/443
blog.com    → 80/443

用户:

http://rent.com
http://blog.com

完美

六、什么时候应该用“端口区分”?

场景是否合理
开发 / 测试环境✅ 非常常用
内部管理后台✅ 可接受
同一个 IP / 临时服务✅ 可以
对外生产服务❌ 极其不推荐

示例(合理使用端口):

server {
    listen 80;
    server_name rent.example.com;
    root /opt/rentalhousing;
}

server {
    listen 3000;
    server_name rent.example.com;
    root /opt/rentalhousing/admin;
}

但更推荐用:

location /admin {
    ...
}

七、一句话极简总结

域名负责“你是谁”,端口负责“怎么连”。
生产环境:用域名 + 标准端口 80/443
实验环境:临时用端口没问题

以上就是Nginx基于域名区分的多网站部署的详细内容,更多关于Nginx多网站部署的资料请关注脚本之家其它相关文章!

相关文章

  • windows查看nginx是否启动及常用命令小结

    windows查看nginx是否启动及常用命令小结

    这篇文章主要给大家介绍了关于windows查看nginx是否启动及常用命令的相关资料,在Windows系统中,可以使用以下命令来操作和管理Nginx,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 记一次nginx中proxy_pass的使用问题

    记一次nginx中proxy_pass的使用问题

    这篇文章主要介绍了记一次nginx中proxy_pass的使用问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Nginx在Windows下的安装与使用过程详解

    Nginx在Windows下的安装与使用过程详解

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,这篇文章主要介绍了Nginx在Windows下的安装与使用,需要的朋友可以参考下
    2023-05-05
  • Nginx配置多台机器实现负载均衡的教程详解

    Nginx配置多台机器实现负载均衡的教程详解

    这篇文章主要为大家详细介绍了Nginx配置多台机器实现负载均衡的相关教程,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Nginx部署vue项目和配置代理的问题解析

    Nginx部署vue项目和配置代理的问题解析

    这篇文章主要介绍了Nginx部署vue项目和配置代理,需本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,要的朋友可以参考下
    2021-08-08
  • 详解阿里云LINUX服务器配置HTTPS(NGINX)

    详解阿里云LINUX服务器配置HTTPS(NGINX)

    本篇文章主要介绍了阿里云LINUX服务器配置HTTPS(NGINX) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详解Nginx HTTP负载均衡和反向代理配置

    详解Nginx HTTP负载均衡和反向代理配置

    这篇文章主要介绍了详解Nginx HTTP负载均衡和反向代理配置,有需要的同学可以了解一下。
    2016-11-11
  • 使用Nginx实现https请求转发http实践

    使用Nginx实现https请求转发http实践

    这篇文章主要介绍了使用Nginx实现https请求转发http实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • nginx设置响应连接是长连接或者短连接方式

    nginx设置响应连接是长连接或者短连接方式

    文章介绍了如何通过Nginx配置长连接和短连接,并提供了验证配置是否成功的方法,通过客户端发送多个请求或使用curl工具、tcpdump抓取请求源端口是否改变,可以验证连接类型
    2025-12-12
  • 内网环境nginx配置https访问的过程详解

    内网环境nginx配置https访问的过程详解

    这篇文章主要介绍了内网环境nginx配置https访问,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论