Nginx虚拟主机配置实践(一)
admin
2023-03-19 15:01:43
0次

Nginx虚拟主机配置实践(一)


一、虚拟主机的概念

在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问。

二、虚拟主机的类型

  1. 基于域名的虚拟主机

  2. 基于端口的虚拟主机

  3. 基于IP的虚拟主机

    说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可。

三、基于一个域名虚拟主机的配置

  1. Nginx主配置文件结构

    Nginx虚拟主机配置实践(一)

  2. 创建一个最简化的Nginx主配置文件

    [root@nginx-oldboy conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf

    说明:Nginx的主配置文件是nginx.conf,nginx.conf.default与nginx.conf内容是一样的。

    执行上述命令之后,得到如下内容:

    Nginx虚拟主机配置实践(一)

    修改如下内容:

    12   server_name  www.afeilinux.com;

    14   root   html/wtf;

    Nginx虚拟主机配置实践(一)

  3. 创建域名对应的站点目录及文件

    [root@nginx-oldboy nginx1.10]# mkdir -p html/wtf

    [root@nginx-oldboy nginx1.10]# cd html/ && ls

    50x.html  index.html  wtf

    [root@nginx-oldboy html]# echo "第一次测试" > ./wtf/index.html

    [root@nginx-oldboy html]# cat ./wtf/index.html

    第一次测试

    说明:上述命令的作用是创建一个html/wtf站点目录,对应于主机配置文件里root根目录的html/wtf设置(root html/wtf;)。然后生成一个默认的首页文件index.html,文件内容是“第一次测试”。

  4. nginx语法检查并重新加载

    [root@nginx-oldboy html]# nginx -t

    Nginx虚拟主机配置实践(一)

    [root@nginx-oldboy html]# nginx -s reload

    说明:如果没有启动nginx,则无法reload。报错内容如下:

    Nginx虚拟主机配置实践(一)

  5. 查看监听端口

    [root@nginx-oldboy html]# netstat -lnp |grep nginx

    Nginx虚拟主机配置实践(一)

  6. 修改hosts配置文件

    [root@nginx-oldboy html]# echo "192.168.100.116  www.afeilinux.com" >> /etc/hosts

    查看一下:

    [root@nginx-oldboy html]# tail -n1 /etc/hosts

    192.168.100.116  www.afeilinux.com

    在windows端也要修改hosts配置文件。

  7. 测试域名站点

    Nginx虚拟主机配置实践(一)

四、基于多个域名虚拟主机的配置

  1. 增加新域名对应的配置

    上面已经有了一个www.afeilinux.com虚拟主机的配置,下面再增加一个www.afeilinux.org虚拟主机的配置。增加的主机一定要在nginx.conf的http{}区块内,最好放在www.afeilinux.com虚拟主机配置的下面。

    server {

            listen       80;

            server_name  www.afeilinux.org;

            location / {

                root   html/org;

                index  index.html index.htm;

            }

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

                root   html;

            }

        }

    Nginx虚拟主机配置实践(一)

  2. 创建新虚拟机主机站点对应的目录和文件

    [root@nginx-oldboy nginx1.10]# mkdir ./html/org

    [root@nginx-oldboy nginx1.10]# echo "第二次测试" > ./html/org/index.html

    [root@nginx-oldboy nginx1.10]# cat !$

    cat ./html/org/index.html

    第二次测试

  3. 检查下站点目录结构

    [root@nginx-oldboy nginx1.10]# tree

    -bash: tree: command not found

    解决方法:

    [root@nginx-oldboy nginx1.10]# yum install -y tree

    [root@nginx-oldboy nginx1.10]# tree html/

    Nginx虚拟主机配置实践(一)

  4. 检查语法并重新加载nginx配置

    [root@nginx-oldboy ~]# nginx -t

    [root@nginx-oldboy ~]# nginx -s reload

  5. 测试域名站点

    Nginx虚拟主机配置实践(一)

五、规范和优化nginx配置文件

  1. 将虚拟主机配置成单独的配置文件与nginx主配置文件nginx.conf分开

    说明:

    (1)适用于虚拟主机数量不多的情况;

    (2)主配置文件包含的所有虚拟主机的子配置文件会统一放在extra目录中;

    (3)虚拟主机配置单独的配置文件,使用参数include,它可以放在nginx主配置文件中任何位置。

    [root@nginx-oldboy conf]# mkdir extra

    [root@nginx-oldboy conf]# sed -n '10,21p' nginx.conf

    Nginx虚拟主机配置实践(一)

    [root@nginx-oldboy conf]# sed -n '10,21p' nginx.conf > extra/wtf.conf

    [root@nginx-oldboy conf]# cat extra/wtf.conf

    [root@nginx-oldboy conf]# sed -n '22,33p' nginx.conf > extra/org.conf

    [root@nginx-oldboy conf]# cat extra/org.conf

  2. 更改主配置文件nginx.conf

    删除主配置文件nginx.conf中所有虚拟主机的配置,包含server{}标签。

    [root@nginx-oldboy conf]# sed -i '10,33d' nginx.conf

    [root@nginx-oldboy conf]# cat nginx.conf

    Nginx虚拟主机配置实践(一)

    把虚拟主机独立配置文件wtf.conf和org.conf的信息包含到nginx.conf里,这样就把主配置文件和各个虚拟主机配置分离了。

    include extra/wtf.conf

    include extra/org.conf

    [root@nginx-oldboy conf]# sed -i '10 i include extra/wtf.conf;\ninclude extra/org.conf;' nginx.conf

    Nginx虚拟主机配置实践(一)

  3. nginx语法检测和重新加载

    [root@nginx-oldboy conf]# nginx -t

    [root@nginx-oldboy conf]# nginx -s reload

  4. 测试

    [root@nginx-oldboy conf]# curl www.afeilinux.com

    第一次测试

    [root@nginx-oldboy conf]# curl www.afeilinux.org

    第二次测试

    [root@nginx-oldboy conf]# tree extra/

    Nginx虚拟主机配置实践(一)

    这样虚拟主机配置文件就与nginx主配置文件分离开了!

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...