一:listen指令

语法 listen address [:port] [default_server]
listen port [default_server]
默认值 listen :80 | :8080
位置 server

default_ server属性是标识符,用来将此虚拟主机设置成默认主机。所谓的默认主机指DEFAULT_SERVER属性是标识符,用来将此虚拟主机设置成默认主机。所谓的默认主机指的是如果没有匹配到对应的address:port,则会默认执行的。如果不指定默认使用的是的是如果没有匹配到对应的地址:端口,则会默认执行的。如果不指定默认使用的是第一个server。

  1. #listen 设置比较灵活
  2. listen 127.0.0.1:8080 #监听指定的ip和端口
  3. listen 127.0.0.1 #监听指定ip的所有端口
  4. listen localhost:80 #监听本机的80端口
  5. listen 80 #监听指定端口上的链接
  6. listen *:8080
  1. server {
  2. listen 8080;
  3. server_name localhost;
  4. location / {
  5. root html;
  6. index index.html;
  7. }
  8. }

server_name指令

server_name 用来设置虚拟主机服务的名称
如:127.0.0.1 ,localhost, 域名www.baidu.com等

语法 server_name ‘name1’ ‘name2’ ‘name3’ (多个之间用空格隔开)
默认值 server_name
位置 server

server_name配置的三种方式:

  1. 精准匹配
  2. 通配符匹配
  3. 正则表达式匹配

1.精准匹配

  1. server {
  2. listen 8080;
  3. server_name www.baidu.com www.google.com;
  4. ........
  5. }
  6. }

如果想在自己的nginx服务器上模拟一个域名测试还需要更改Windows的hosts文件将域名与127.0.0.1进行映射
windows:C:\Windows\System32\drivers\etc\hosts

hosts是一个没有扩 展名的系统文件,可以用记事本等工具打开,其作用就是将一-些常用
的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登
录的网址时,系统会首先自动从hosts文件中寻找对应的IP地址,一旦找到,系统会立即
打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的
解析。

2.基于通配符进行匹配

server_ name中支持通配符”*”,但需要注意的是通配符不能出现在域名的中间,只能出现在首段或尾段,如:

  1. server {
  2. listen 8080;
  3. server_name *.baidu.com www.google.*; # *号不能出现在中间
  4. ........
  5. }
  6. }

下面这些都会报错

  1. server {
  2. listen 8080;
  3. server_name www.*.com www.google.c*;
  4. ........
  5. }
  6. }

3.基于正则表达式

image.png
image.png

缺少一个匹配顺序