博客
关于我
LNMP架构 nginx默认虚拟主机
阅读量:803 次
发布时间:2023-02-06

本文共 1943 字,大约阅读时间需要 6 分钟。

Nginx 默认虚拟主机配置

在 Nginx 中,虚拟主机是处理多个域名或子域名请求的核心功能之一。以下将介绍如何配置默认虚拟主机以及如何为多个站点配置 Nginx。

默认虚拟主机配置

默认虚拟主机是 Nginx 最基础的配置方式。当没有定义对应的域名或子域名时,请求将自动转向默认虚拟主机。

  • 删除 nginx.conf 中的默认配置

    打开 /usr/local/nginx/conf/nginx.conf 文件,删除文件末尾的默认配置内容:

    server {    listen 80;    server_name localhost;    index index.html index.htm index.php;    root /usr/local/nginx/html;    location ~ \.php$ {        include fastcgi_params;        fastcgi_pass unix:/tmp/php-fcgi.sock;        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;    }}
  • 新增 include 语句

    在文件末尾新增一行,告诉 Nginx 导入 vhost 目录下的配置文件:

    include vhost/*.conf;
  • 创建 vhost 目录并新建默认配置文件

    • 创建 vhost 目录:
      mkdir -p /usr/local/nginx/conf/vhost
    • 打开新建的默认配置文件 /usr/local/nginx/conf/vhost/default.conf 并填写以下内容:
    server {    listen 80 default_server;    server_name aaa.com;    index index.html index.htm index.php;    root /data/wwwroot/aaa;}
  • 创建站点文件夹并准备测试页面

    • 创建站点主目录:
      mkdir -p /data/wwwroot/aaa
    • 新建站点首页文件(可用 curl 测试):
    echo "this is aaa.com site" > /data/wwwroot/aaa/index.html
  • 验证 Nginx 配置

    • 检查配置文件语法:
      /usr/local/nginx/sbin/nginx -t
    • 重新加载配置:
      /usr/local/nginx/sbin/nginx -s reload
  • 测试访问

    • 测试默认主机访问:

      curl localhost

      预期输出:this is aaa.com site

    • 测试非存在域名访问:

      curl -x 127.0.0.1:80 bbb.com

      预期输出:this is aaa.com site

  • 注意事项
    • 如果访问一个不存在的域名, Nginx 会自动将请求转向默认虚拟主机(aaa.com)。
    • 使用 systemctl restart nginx 会清空旧的缓存文件,建议在新建配置后使用此命令。

    Nginx 多虚拟主机配置

    通过上述方法,我们已经配置好了默认虚拟主机。接下来将介绍如何为多个站点配置 Nginx。

  • 进入 vhost 目录

    cd /usr/local/nginx/conf/vhost
  • 新建站点配置文件

    • 打开新的站点配置文件(例如 abc.conf)并填写以下内容:
    server {    server_name abc.com;    index index.html index.htm index.php;    root /data/wwwroot/abc;}
  • 创建站点主目录并准备测试页面

    • 创建站点主目录:
      mkdir -p /data/wwwroot/abc
    • 新建站点首页文件:
    echo "abc.com" > /data/wwwroot/abc/index.html
  • 测试访问

    • 测试访问 abc.com

      curl -x 127.0.0.1:80 abc.com

      预期输出:abc.com

    • 测试访问不存在的域名 cba.com

      curl -x 127.0.0.1:80 cba.com

      预期输出:this is aaa.com site(默认虚拟主机响应)


  • 总结

    通过以上配置,您已经成功搭建了 Nginx 的默认虚拟主机和多域名支持。默认虚拟主机自动处理未定义域名的请求,而多虚拟主机配置则允许您为不同域名设置独立的文件存储路径和访问权限。

    转载地址:http://hyufk.baihongyu.com/

    你可能感兴趣的文章
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>