1.Nginx的功能模块

    Nginx软件的强大是由于它具有众多的功能模块,下面列出企业中常用的重要模块。

    (1)Nginx核心功能模块(Core functionality)

    Nginx核心功能模块负责Nginx的全局应用,主要对应主配置文件的Main区块和Event区块区域,这里有很多的Nginx必须的全局参数配置。

    (2)标准的http功能模块集合

ngx_http_access_module,ngx_http_gzip_module,ngx_http_upstream_module,ngx_http_proxy_module,ngx_http_log_module模块等等,具体的说明可以自行百度或者到官网查询。

    2.Nginx的目录说明

nginx增加域名如何不重启生效 nginx怎么配置域名_nginx增加域名如何不重启生效

    其中conf的配置文件较多,最为重要的是nginx.conf的文件,这是nginx的主配置文件。带有default的文件都是备份文件。

    3.Nginx的主配置文件

Nginx的配置文件是一个纯文本文件,它一般位于Nginx安装目录的conf目录下,整个配置文件是以block的形式组织的。每个block一般以一个大括号“{ }”来表示,block可以分为几个层次,整个配置文件中Main指令位于最高层,在Main层下面可以有Events、HTTP等层级,而在HTTP层中又包含有Server层,即server block,server block中又可分为location层,并且一个server block中可以包含多个location block。
    一个完整的配置文件结构如下图所示。

nginx增加域名如何不重启生效 nginx怎么配置域名_nginx_02

Nginx配置文件注释:

worker_processes  1;    #worker进程的数量
events {                #事件块的开始
    worker_connections  1024;            #每个worker进程支持的最大连接数
}                       #事件块的结束
http {                  #HTTP区块的开始
    include       mime.types;                #Nginx支持媒体类型库文件
    default_type  application/octet-stream;    #默认的媒体类型
    sendfile        on;                        #开启高速传输模式
    keepalive_timeout  65;                     #连接超时
    server {                                    #第一个server区块的开始
        listen       80;                        #提供服务的端口,默认为80
        server_name  localhost;                 #提供服务的域名主机
        location / {                            #第一个location区块的开始
            root   html;                        #站点的根目录,相当于Nginx的安装目录
            index  index.html index.htm;        #默认的首页文件,多个使用空格隔开
        }                                        #第一个location区块的结束
        error_page   500 502 503 504  /50x.html;    #出现对应的http状态码是,使用50x.html回应客户
        location = /50x.html {                    #location区块的开始,访问50x.html
            root   html;                            #指定对应的站点目录为html
        }
    }
}                                                   #HTTP区块的结束

    4、虚拟主机的概念及配置

</VirtualHost>里面,而Nginx则是用server{}标签来标识一个虚拟主机。一个web服务可以有多个虚拟主机的标签对,即可以同时支持多个虚拟主机站点。

    虚拟主机主要包含有三种类型,一是基于域名的虚拟主机,二是基于端口的虚拟主机还有就是基于IP的虚拟主机。最为常见的是基于域名和端口的,下面我们以基于域名的为例讲解如何配置虚拟主机。本次实验会配置两个虚拟主机,分别是www.pcm.com以及bbs.pcm.com。

    (1)在html目录下新建虚拟主机的目录www和bbs,并写入首页文件。

mkdir /usr/local/nginx/html/www/
mkdir /usr/local/nginx/html/bbs/
echo "这是www站点,IP地址为:192.168.31.10" >> /usr/local/nginx/html/www/index.html
cho "这是bbs站点,IP地址为:192.168.31.10" >> /usr/local/nginx/html/bbs/index.html


    (2)修改nginx.conf配置文件,在conf目录下新建extra目录用来放置www和bbs的配置文件。

cd /usr/local/nginx/conf        
egrep -v "#|^$" nginx.conf.default >nginx.conf    #不要注释和空行的nginx的配置文件

 修改之后的配置文件如下所示,删除了server区块,把server区块写入到extra目录对应的文件里面,用include引用这些配置文件。

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
	include extra/www.conf;    #这样可以直接引用 
	include extra/bbs.conf;
}

    (3)在conf目录下新建目录extra,然后在该目录下新建 www.conf以及bbs.conf两个文件

mkdir extra
touch extra/www.conf
touch extra/bbs.conf

这两个文件的配置如下

www.conf

bbs.conf

server {

listen       80;

server_name  www.pcm.com;

location / {

root   html/www;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

server {

listen       80;

server_name  bbs.pcm.com;

location / {

root   html/bbs;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

    (4)修改hosts文件,增加对域名www.pcm.com和bbs.pcm.com的解析,这样我们可以直接在本机上做测试了。

echo "192.168.31.10   www.pcm.com bbs.pcm.com cms.pcm.com blog.pcm.com" >>/etc/hosts

    (5)检查nginx.conf文件有没有语法问题,没有的话重新加载nginx。

/usr/local/nginx/sbin/nginx -t


nginx增加域名如何不重启生效 nginx怎么配置域名_运维_03



/usr/local/nginx/sbin/nginx -s reload    #重新加载配置文件,平滑重启,不建议用restart重启



    (6)本机上,用curl测试。

nginx增加域名如何不重启生效 nginx怎么配置域名_nginx增加域名如何不重启生效_04

nginx增加域名如何不重启生效 nginx怎么配置域名_运维_05

    (7)在windows主机上做测试(可选)

    打开winows的hosts文件,增加这两行,文件所在路径是:C:\Windows\System32\drivers\etc

    

nginx增加域名如何不重启生效 nginx怎么配置域名_nginx增加域名如何不重启生效_06

    然后用浏览器输入网址验证,到这里,nginx的虚拟主机配置成功。

nginx增加域名如何不重启生效 nginx怎么配置域名_html_07

nginx增加域名如何不重启生效 nginx怎么配置域名_Nginx_08



转载于:https://blog.51cto.com/superpcm/2091875