JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Nginx学习笔记(04) server虚拟主机配置详解

wys521 2024-10-07 16:13:59 精选教程 19 ℃ 0 评论

虚拟主机分类

  • 基于多IP的虚拟主机
# 通过不同的IP区分不同的虚拟主机

user  nginx;
worker_processes  auto;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    charset    utf-8;
    server {
        listen       192.168.58.8;
        server_name  localhost;
        location / {
            root   html/server1;
            index  index.html index.htm;
        }
    }
    server {
        listen       192.168.58.9;
        server_name  localhost;
        location / {
            root   html/server2;
            index  index.html index.htm;
        }
    }
}

# 效果
# http://192.168.58.8 --指向资源--> html/server1
# http://192.168.58.9 --指向资源--> html/server2
# PS: 使用场景很少,单纯是作为了解
  • 基于多端口的虚拟主机
# 通过不同的端口来区分不同的虚拟主机,此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机,地址里要带有端口号,例如http://www.test.com:81 http://www.test.com:82等
		server {
        listen       81;
        server_name  test.com;
        location / {
            root   html/server1;
            index  index.html index.htm;
        }
    }
    server {
        listen       82;
        server_name  test.com;
        location / {
            root   html/server2;
            index  index.html index.htm;
        }
    }
# 效果
# http://www.test.com:81 --指向资源--> html/server1
# http://www.test.com:82 --指向资源--> html/server2
  • 基于多域名的虚拟主机
# 这类场景是最常用的,几乎所有对外提供服务的网站使用的都是基于域名的主机
   server {
        listen       80;
        server_name  www.myblog.com;
        location / {
          # 博客网站
          proxy_pass http://www.myserver.cn:8090;
        }
    }
    server {
        listen       80;
        server_name  www.mybt.com;
        location / {
          # 宝塔面板
          proxy_pass http://www.myserver.cn:8888;
        }
    }
# 效果
# http://www.myblog.com --跳转--> 博客网站
# http://www.mybt.com -跳转--> 宝塔面板


server_name

  • 语法结构
# server_name指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名。
语法: server_name name1 name2 name3 ...;
示例1: server_name www.nginx.com;
示例2: server_name *.nginx.org;
示例3: server_name www.nginx.org *.nginx.com;
  • 四种写法
server_name www.mydomin.com
server_name *.mydomin.com
server_name www.mydomin.*
# '~' 开启正则表达式匹配
server_name ~^www\.mydomin\..*$

server_name指令匹配优先级

# 精确匹配 ↓
server{
    server_name www.mydomin.com
}
# 左侧通配符匹配 ↓
server{
    server_name *.mydomin.com
}
# 右侧通配符匹配 ↓
server{
    server_name www.mydomin.*
}
# 正则表达式匹配 ↓
server{
    server_name ~^www\.mydomin\..*$
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表