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

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


一、虚拟主机的概念

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

二、虚拟主机的类型

  1. 基于域名的虚拟主机
  2. 基于端口的虚拟主机
  3. 基于IP的虚拟主机

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

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

  1. Nginx主配置文件结构

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

    [[email protected] conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf

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

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

    修改如下内容:

    12   server_name  www.afeilinux.com;

    14   root   html/wtf;

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

    [[email protected] nginx1.10]# mkdir -p html/wtf

    [[email protected] nginx1.10]# cd html/ && ls

    50x.html  index.html  wtf

    [[email protected] html]# echo "第一次测试" > ./wtf/index.html

    [[email protected] html]# cat ./wtf/index.html

    第一次测试

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

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

    [[email protected] html]# nginx -t

    [[email protected] html]# nginx -s reload

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

  5. 查看监听端口

    [[email protected] html]# netstat -lnp |grep nginx

  6. 修改hosts配置文件

    [[email protected] html]# echo "192.168.100.116  www.afeilinux.com" >> /etc/hosts

    查看一下:

    [[email protected] html]# tail -n1 /etc/hosts

    192.168.100.116  www.afeilinux.com

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

  7. 测试域名站点

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

  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;

    }

    }

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

    [[email protected] nginx1.10]# mkdir ./html/org

    [[email protected] nginx1.10]# echo "第二次测试" > ./html/org/index.html

    [[email protected] nginx1.10]# cat !$

    cat ./html/org/index.html

    第二次测试

  3. 检查下站点目录结构

    [[email protected] nginx1.10]# tree

    -bash: tree: command not found

    解决方法:

    [[email protected] nginx1.10]# yum install -y tree

    [[email protected] nginx1.10]# tree html/

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

    [[email protected] ~]# nginx -t

    [[email protected] ~]# nginx -s reload

  5. 测试域名站点

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

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

    说明:

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

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

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

    [[email protected] conf]# mkdir extra

    [[email protected] conf]# sed -n ‘10,21p‘ nginx.conf

    [[email protected] conf]# sed -n ‘10,21p‘ nginx.conf > extra/wtf.conf

    [[email protected] conf]# cat extra/wtf.conf

    [[email protected] conf]# sed -n ‘22,33p‘ nginx.conf > extra/org.conf

    [[email protected] conf]# cat extra/org.conf

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

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

    [[email protected] conf]# sed -i ‘10,33d‘ nginx.conf

    [[email protected] conf]# cat nginx.conf

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

    include extra/wtf.conf

    include extra/org.conf

    [[email protected] conf]# sed -i ‘10 i include extra/wtf.conf;\ninclude extra/org.conf;‘ nginx.conf

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

    [[email protected] conf]# nginx -t

    [[email protected] conf]# nginx -s reload

  4. 测试

    [[email protected] conf]# curl www.afeilinux.com

    第一次测试

    [[email protected] conf]# curl www.afeilinux.org

    第二次测试

    [[email protected] conf]# tree extra/

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

时间: 2024-11-04 21:04:16

Nginx虚拟主机配置实践(一)的相关文章

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二) 一.虚拟主机别名介绍 虚拟主机别名就是为虚拟主机设置除了主域名以外的另一个或多个域名名字,这样就能实现用户访问的多个域名对应于同一个虚拟主机网站的功能.在生产环境中,以www.afeilinux.com域名的虚拟主机为例,为其增加一个别名afeilinux.com时,在该域名出现的网站内容和访问www.afeilinux.com得到的结果是一样的. 二.实施方法 第一种方法:Nginx虚拟主机的别名配置 更改wtf.conf配置文件

RHEL7下Nginx虚拟主机配置(三)

RHEL7下Nginx虚拟主机配置 前面两节讲过安装和配置文件了,这里写出配置文件,大家根据内容修改配置文件就可以了. http { server{ listen    80; server_name   192.168.1.20; access_log        log/192.168.1.20 main; location / { index    index.html; root      /application/nginx/html/; } } server{ linsten  8

Nginx虚拟主机配置详解

Nginx虚拟主机配置详解 一.虚拟主机介绍 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW.FTP.Email等),同一台主机上的虚拟主机之间是完全独立的.从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样. 利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程.虚拟主机提供了在同一台服务器.

Nginx虚拟主机配置实例

Nginx虚拟主机 结合上篇文章:手工编译NginxNginx虚拟主机的搭建过程,虚拟主机的概念在之前的Apache虚拟主机搭建实验时已讲述过有关知识点,原文链接:Apache web 虚拟主机 结合上篇文章的配置进行下面的配置操作(Nginx服务是开启状态) [[email protected] named]# netstat -natp | grep 80tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 79214/nginx: master Nginx虚拟主机配置 1

nginx:虚拟主机配置

nginx的虚拟主机配置主要分为三类: 基于域名的虚拟主机(z.com) 基于ip的虚拟主机(192.168.1.42) 基于端口的虚拟主机(z.com:2022) 一般当服务器的主机超过两个时,建议将这些虚拟主机单独建立文件,然后在nginx.conf文件中直接引入(比如:include vhost/*.conf) 一.基于域名的虚拟主机 server { listen 80; server_name z.com; location / { root /home/www/zgw/; index

Nginx虚拟主机配置 + 虚拟主机支持PHP

说明:配置之前先把域名解析到服务器IP地址上 站点1:bbs.osyunwei.com 程序所在目录/data/osyunwei/bbs 站点2:sns.osyunwei.com 程序所在目录/data/osyunwei/sns chown www.www /data/osyunwei/ -R #设置目录所有者,www为nginx运行账户 chmod 700 /data/osyunwei/ -R #设置目录权限 nginx配置文件路径:/usr/local/nginx/conf/nginx.co

Nginx虚拟主机配置

利用虚拟主机技术,可以把一台真正的主机分成许多"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器(www,FTP,email)功能.虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样.效果一样但费用却大不一样了.由于多台虚拟主机共享一台真实主机的资源,每个虚拟主机用户承受的硬件费用.网络维护费用.通信线路的费用均大幅度降低,Internet真正成为人人用得起的网络! 虚拟主机共分为三种:基于IP的虚拟主机,基于端口的虚拟主机

nginx虚拟主机配置小结

nginx的安装在lnmp环境搭建中已经介绍过了,配置文件在安装目录下的conf子目录下,主要主要分成四部分:main(全局设置).server(主机设置).upstream(负载均衡服务器设置).location(URL 匹配特定位置的设置).可以狭义的理解一个server就是一个虚拟主机.主要有三种配置虚拟主机的方式:基于域名.基于端口.基于ip.下面分别介绍: 一.基于域名: 主要步骤:1.首先在windows本地hosts添加虚拟机ip地址对应的域名解析 192.168.1.104  z

nginx虚拟主机配置优化

优化 [[email protected] conf]# mkdir extra [[email protected] conf]# vim nginx.conf [[email protected] conf]# cat nginx.conf worker_processes  1; events {     worker_connections  1024; } http {     include       mime.types;     default_type  applicatio