Fork me on GitHub

nginx配置虚拟主机

  一、为了不影响主配置的文件,我先加个include 

    1、进入nginx所在目录

cd /etc/nginx/

    2、修改配置

vim nginx.conf 

    3、在http这段添加一行

http {
    include     /etc/nginx/conf.d/*.conf
}

这行表示,配置文件也可也放在/etc/nginx/conf.d/下以conf结尾(默认自带,不带在添加)

  二、在data下创建多个站点

    1、新建目录

mkdir /data/site1
mkdir /data/site2

    2、生成自己的页面

echo /data/site1/index.html > /data/site1/index.html
echo /data/site2/index.html > /data/site2/index.html

  三、配置虚拟主机

vim /etc/nginx/conf.d/test.conf
server {
        server_name     www.a.net;
        root /data/site1;
}
server {
        server_name     www.a.tech  www.a.org;
        root /data/site2;
}

这个语句已经包含在http 中了所以可以直接写server

listen 80 默认省略不写

server_name 网站名

root 指定家目录

也可以多个域名,支持通配符,支持正则表达式

  四、修改hosts文件

vim /etc/hosts
192.168.1.5 www.a.net www.a.tech

直接访问需要域名解析,我这里就不解析了,直接修改需要访问的hosts文件

  五、测试访问

[15:04:17 root@localhost nginx]#curl www.a.net
/data/site1/index.html
[15:04:59 root@localhost nginx]#curl www.a.tech
/data/site2/index.html

  六、如何通过IP访问的话,可以设置你需要的页面为默认主机

vim /etc/nginx/conf.d/test.conf

  server {
    server_name www.a.net ;
     root /data/site1;
  }

  server {
    listen 80 default_server;
    server_name www.a.tech;
    root /data/site2;
  }

注意要修改默认的/etc/nginx/nginx.conf,去掉原本里面的server默认server ,我这里用的是1.20版,没在nginx.conf

中,而是在etc/nginx/conf.d下面有个默认的.conf 文件

  七、测试访问

curl 192.168.1.5/index.html
/data/site2/index.html

 支持*通配任意长度的任意字符

  server_name *.magedu.com www.magedu.*
支持~起始的字符做正则表达式模式匹配,性能原因慎用
  server_name ~^www\d+\.magedu\.com$
说明: \d 表示 [0-9]
匹配优先级机制从高到低
  (1) 首先是字符串精确匹配 如:www.magedu.com
  (2) 左侧*通配符 如:*.magedu.com
  (3) 右侧*通配符 如:www.magedu.*
  (4) 正则表达式 如: ~^.*\.magedu\.com$
  (5) default_server

 

posted @ 2021-05-28 16:23  Alex-Lzy  阅读(458)  评论(0编辑  收藏  举报