nginx域名解析

虚拟主机:

简单来说,虚拟主机就是可以在一台nginx服务器上运行多个网站。nginx可以通过配置多个server来配置多台虚拟主机,一个server对应一台虚拟主机。一台虚拟主机上可以部署一个网站。各个虚拟主机的ip地址是相同的,但是一个ip可以绑定不同的域名,所以每台虚拟主机都可以拥有自己的域名和端口号,但是80端口只有一个,一般情况下,多台虚拟主机公用80端口,然后根据域名来区分客户端请求的到底是哪一台虚拟主机,哪一个网站。
   配置虚拟主机可以基于端口号,IP和域名。1.基于端口号的虚拟机主机:nginx监听多个端口,根据不同的端口号;来区分不同的网站。2.基于域名的虚拟主机:实际的场景中,访问一个网站都是通过不同的域名访问,所以基于域名的虚拟主机是最常见的,不同的域名可以解析指向同一个ip地址,而nginx在解析请求的时候会根据不同的域名来指向不同服务。3.基于IP的虚拟主机;一台主机可以拥有超过1个ip地址,通过不同的ip地址,指向不同的服务。

一台nginx服务器配置多个站点

只需保证监听端口、配置域名两者组合不一致即可。

nginx lisen两个端口 nginx多个端口站点_nginx

两个站点如下:

nginx lisen两个端口 nginx多个端口站点_nginx_02

两个站点目录test1

nginx lisen两个端口 nginx多个端口站点_linux_03

index.html内容

hello1

test2目录

nginx lisen两个端口 nginx多个端口站点_服务器_04

index.html内容

hello2

监听不同域名

nginx lisen两个端口 nginx多个端口站点_nginx_05

server {
        listen       80;
        server_name  test1.likelong.icu;

        location / {
            root   /www/test1;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    server {
        listen       80;
        server_name  test2.likelong.icu;

        location / {
            root   /www/test2;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

记得修改完配置文件,重启nginx。

访问test1.likelong.icu

nginx lisen两个端口 nginx多个端口站点_nginx_06

访问test2.likelong.icu

nginx lisen两个端口 nginx多个端口站点_nginx_07

如果匹配不到就会访问第一个站点:

nginx lisen两个端口 nginx多个端口站点_html_08

单个nginx服务器部署两个站点。

监听不同端口

nginx lisen两个端口 nginx多个端口站点_nginx_09

server {
        listen       80;
        server_name  test1.likelong.icu;

        location / {
            root   /www/test1;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    server {
        listen       81;
        server_name  test1.likelong.icu;

        location / {
            root   /www/test2;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

访问test1.likelong.icu

nginx lisen两个端口 nginx多个端口站点_linux_10

访问test1.likelong.icu:81,访问该地址显示无法访问此网站,应该是81端口没开放。

nginx lisen两个端口 nginx多个端口站点_nginx_11

去阿里云安全组开放81端口

nginx lisen两个端口 nginx多个端口站点_服务器_12

再次访问就正常了

nginx lisen两个端口 nginx多个端口站点_linux_13

也是可以单个nginx服务器部署两个站点。


泛域名
所谓“泛域名解析”是指:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。

好处:

1.可以让域名支持无限的子域名(这也是泛域名解析最大的用途)

2.防止用户错误输入导致的网站不能访问的问题

3.可以让直接输入网址登陆网站的用户输入简洁的网址即可访问网站

泛域名在实际使用中作用是非常广泛的,比如实现无限二级域名功能,提供免费的url转发,在IDC部门实现自动分配免费网址,在大型企业中实现网址分类管理等等,都发挥了巨大的作用。

在阿里云的泛域名配置如下:

只需在主机记录填上*即可,上述一台nginx服务器配置多个站点使用的域名就配置了泛域名解析配置如下。

nginx lisen两个端口 nginx多个端口站点_nginx_14