配置与应用场景
域名解析

浏览器、Nginx 与 HTTP 协议
- 电脑拿到 IP 地址、首先会先发送 TCP/IP 协议(HTTP 或 HTTPS 协议在 TCP/IP 协议之上,TCP/IP 协议只能传输二进制数据)。
 
- 在宽带(电信、联通、移动)的主干网上会进过很多个网关(也可以理解为路由器)。
 
- 从家里的网关=>>小区的网关=>>服务商的网关=>>(电信、联通、移动)的网关=>>区域的网关=>>市里的网关=>>全国的总网关=>>最后才到主干网上。
 
- HTTPS 就是在这个过程中给你是数据进行了加密。
 
虚拟主机的原理
1域名/IP ==> Nginx,访问服务器获取资源
2
3域名/IP <== Nginx, 服务器返回资源
 
这样的话一台主机就可以给外界公布一个公网 IP,如果公网 IP 只绑定了一个 IP 地址上,这样就有可能会造成性能过剩,因为这一台主机不会时时的高访问。
如果将多个域名绑定到一台主机上,在通过 Nginx 服务器来判断你访问的是哪一个域名,之后在返回给你对应的资源

本地域名解析
找到本地主机的 hosts 文件 C:\Windows\System32\drivers\etc
在最后加上:
IP 地址 域名
1192.168.88.100 hadoop100.com
 
公网域名配置与泛域名解析
首先需要一个域名,购买渠道阿里云、腾讯云,这里已阿里云

主机记录
- 第一种:指定前缀的,例如 www 之类的。
 
- 第二种:不填,例如我现在的域名是 gopeak.cn ,也会匹配到 
www.gopeak.cn。 
- 第三种:填 
*(通配符),这样所有的二级,三级等域名都会匹配到当前主机上 
记录值:也就是主机名
配置多个虚拟主机
域名设置

Nginx 设置
1worker_processes  1;
2
3events {
4    worker_connections  1024;
5}
6
7http {
8    include       mime.types;
9    default_type  application/octet-stream;
10
11    sendfile        on;
12
13    keepalive_timeout  65;
14
15    # 虚拟主机 vhost
16    server {
17        listen       80;
18        # 域名 主机名
19        server_name  www.gopeak.cn;
20
21        location / {
22            root   /www/www;
23            index  index.html index.htm;
24        }
25
26        error_page   500 502 503 504  /50x.html;
27        location = /50x.html {
28            root   html;
29        }
30    }
31
32    # 虚拟主机 vhost
33    server {
34        listen       80;
35        # 域名 主机名
36        server_name  vod.gopeak.cn;
37
38        location / {
39            root   /www/vodi;
40            index  index.html index.htm;
41        }
42
43        error_page   500 502 503 504  /50x.html;
44        location = /50x.html {
45            root   html;
46        }
47    }
48}
 
最小配置
worker_processes
worker_processes 1; 默认为 1,表示开启一个业务进程 
worker_connections
worker_connections 1024; 单个业务进程可接受连接数 
include mime.types
include mime.types; 引入http mime类型,在请求头中标明服务端给客户端返回的文件是什么类型的文件。 
default_type application/octet-stream
default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。 
sendfile on
sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据 0 拷贝。 
未开启sendfile

开启sendfile后

keepalive_timeout 65
server

虚拟主机配置
1server {
2    listen   80; 监听端口号
3    server_name localhost; 主机名、域名
4
5    location / { 匹配路径
6        root html; 文件根目录
7        index index.html index.htm; 默认页名称
8    }
9
10    error_page 500 502 503 504 /50x.html; 报错编码对应页面
11    location = /50x.html {
12     root html;
13    }
14}
 
虚拟主机
原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务
servername 匹配规则
我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。
完整匹配
我们可以在同一servername中匹配多个域名
1server_name vod.mmban.com www1.mmban.com;
 
通配符匹配
通配符结束匹配
正则匹配
1server_name ~^[0-9]+\.mmban\.com$;