万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • Nginx 简介
  • Nginx 虚拟主机
    • 概述
    • 基于域名的虚拟主机配置
    • 基于端口的虚拟主机配置
  • Nginx 反向代理
  • Nginx 负载均衡
  • Nginx
2021-12-04
目录

Nginx 虚拟主机

# Nginx 虚拟主机

# 概述

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供 www 服务,这样就可以实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

通过 Nginx 可以实现虚拟主机的配置,Nginx 支持三种类型的虚拟主机配置

  • 基于 IP 的虚拟主机
  • 基于域名的虚拟主机
  • 基于端口的虚拟主机

下面是一些简单示例,看看这几种配置的方式,其中基于IP的虚拟主机与基与域名的虚拟主机配置大同小异,这里仅以域名虚拟主机来示例。

# 基于域名的虚拟主机配置

# 背景

  • 两个域名指向同一台 Nginx 服务器(虚拟机,IP地址为 192.168.0.111 ),用户访问不同的域名显示不同的网页内容
  • 两个域名是 service.example.wenwl.com 和 web.example.wenwl.com

# 配置 Hosts

修改 hosts 文件:

  • Windows

    # 追加 C:\Windows\System32\drivers\etc下的 hosts 文件
    192.168.0.111 service.example.wenwl.com
    192.168.0.111 web.example.wenwl.com
    
  • MacOS

    sudo vi /etc/hosts
    
    192.168.0.111 service.example.wenwl.com
    192.168.0.111 web.example.wenwl.com
    

# 配置 Nginx

用Docker安装Nginx(参考nginx简介),在 /usr/local/docker/nginx/wwwroot 目录下创建 html-service 和 html-web 两个目录,并分辨创建两个 index.html 文件。

Nginx虚拟主机配置参考如下:

user  nginx;
# 工作核心 默认为auto
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    # 一个虚拟主机的配置
    server {
    		# 监听的 端口 和 域名/ip
        listen       80;
        server_name  service.example.wenwl.com;
        # 所有的请求都以 / 开始,所有的请求都可以匹配此 location
        location / {
            # 使用 root 指令指定虚拟主机目录即网页存放目录
    				# 比如访问 http://ip/index.html 将找到 /usr/local/docker/nginx/wwwroot/html-service/index.html
    				# 比如访问 http://ip/item/index.html 将找到 /usr/local/docker/nginx/wwwroot/html-service/item/index.html
            root   /usr/share/nginx/wwwroot/html-service;
            # 指定欢迎页面,按从左到右顺序查找
            index  index.html index.htm;
        }

    }
  
    # 另一个虚拟主机的配置
    server {
        listen       80;
        server_name  web.example.wenwl.com;

        location / {
            root   /usr/share/nginx/wwwroot/html-web;
            index  index.html index.htm;
        }
    }
  
}

建议将 server {.......} 抽取成 *.conf 文件,独立放在conf.d目录,最后通过浏览器访问两个域名(根据实际情况带上端口号),看是否能够成功访问到对应的页面。

# 基于端口的虚拟主机配置

# 背景

  • Nginx 对外提供 80 和 8080 两个端口监听服务
  • 请求 80 端口则请求 html-80 目录下的 html
  • 请求 8080 端口则请求 html-8080 目录下的 html

# 配置 Nginx

在 /usr/local/docker/nginx/wwwroot 目录下创建 html-80 和 html-8080 两个目录,并分别创建两个 index.html 文件

Nginx配置 server {.......} 部分 参考如下:

server {
  listen       80;
  server_name  192.168.0.111;
  location / {
    root   /usr/share/nginx/wwwroot/html-80;
    index  index.html index.htm;
  }
}

server {
  listen       8080;
  server_name  192.168.0.111;

  location / {
    root   /usr/share/nginx/wwwroot/html-8080;
    index  index.html index.htm;
  }
}
上次更新: 5/31/2023, 1:14:42 AM
Nginx 反向代理

Nginx 反向代理→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式