基于域名的虚拟主机

01.通过不同域名访问nginx虚拟主机:

  • nginx通过server_name关键字来匹配不同的虚拟主机。
    • server_name的值为域名,当客户端使用域名请求资源时,nginx会自上而下的匹配文件中所有的server下的server_name。
      • server_name在整个nginx配置文件中是唯一的,重复则语法检测会失败。
      • server_name可以有多个值,其用空格分隔。
      • server_name后中使用default_server表示默认站点,当所有server_name都不能匹配,则返回默认站点。
        • 如果所有的server_name都不能匹配,也没有默认站点,则返回自上而下的第一个server。
  • vim /opt/Apps/nginx/conf/conf.d/main.conf,修改nginx配置文件,添加如下配置:
server {
    listen 80;
    server_name nginx.test.com;
    error_log logs/nginx_test_error.log error;
    access_log logs/nginx_test_access.log main gzip flush=5m;

    location / {
        root html/main;
        index index.html index.htm index.php;
    }
}

server {
    listen 80;
    server_name nginx-new.test.com;
    error_log logs/nginx_test_new_error.log error;
    access_log logs/nginx_test_new_access.log main gzip flush=5m;

    location / {
        root html/main-new;
        index index.html index.htm index.php;
    }
}
  • echo “This is site nginx.test.com” > /opt/Apps/nginx/html/main/index.html,编辑站点nginx.test.com的主页文件。
  • echo “This is site nginx-new.test.com” > /opt/Apps/nginx/html/main-new/index.html,编辑站点nginx-new.test.com的主页文件。
  • /opt/Apps/nginx/sbin/nginx -s reload,重新加载配置文件。
  • 编辑客户端本地的hosts文件,将两个域名都指向nginx:
10.1.32.200 nginx.test.com
10.1.32.200 nginx-new.test.com
  • 使用这2个域名访问,测试虚拟主机的效果。
文档更新时间: 2020-03-12 19:10   作者:闻骏