码迷,mamicode.com
首页 > 其他好文 > 详细

nginx目录配置详解

时间:2016-07-14 19:45:18      阅读:1086      评论:0      收藏:0      [点我收藏+]

标签:nginx 虚拟主机 基于ip的虚拟主机 基于域名的虚拟主机 基于端口的虚拟主机 nginx配置文件

进入nginx目录,排除temp文件后,剩余四个目录

[root@elkzabbix01 nginx]# ls -l | grep -v temp

总用量 36

drwxr-xr-x. 2 root root 4096 7月  12 20:42 conf  → 配置文件

drwxr-xr-x. 2 root root 4096 7月  12 20:42 html  → 站点信息

drwxr-xr-x. 2 root root 4096 7月  12 20:49 logs  → 日志信息

drwxr-xr-x. 2 root root 4096 7月  12 20:42 sbin  → 启动命令


cd /html 

里面有文件index.html ,这个文件一般默认是网站的首页


下面进入conf文件夹,下面有一个 nginx.conf 文件

运维有一个很重要的思想叫最小化学习,所以我们要把配置文件简化一下:

简化命令:

egrep -v "#|^$" nginx.conf >> a.conf

^代表行首

$代表行尾

^$意思就是行首之后就是行尾,中间什么也没有,所以代表空行


worker_processes  1;    默认进程有一个 


一个worker可以处理多少并发连接

events {

    worker_connections  1024; 

}


那么有多少个worker呢???可以看配置文件第一行

[root@elkzabbix01 conf]# ps -ef | grep nginx

root  8398  1     0  Jul12 ?  00:00:00 nginx: master process /app/zpy/nginx/sbin/nginx

zpy   8399  8398  0  Jul12 ?  00:00:00 nginx: worker process    

可以看到就一个worker process ,一般认为worker process 与cpu 核数相当

所以nginx最大并发连接数是怎么计算的呢 ??

worker process 乘以  worker_connections


-----------------------

http模块


http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile       on;

    keepalive_timeout  65;

下面这个叫做server标签,一个server标签代表一个虚拟主机

    server {

        listen       80;            监听端口

        server_name  localhost;     域名

        location / {                   /  代表直接在浏览器输入 http://10.0.70.3 

            root   html;

            index  index.html index.htm;    这个代表首页文件

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {    /50.x.html代表直接在浏览输http://10.0.70.3/50.x.html

            root   html;

        }



技术分享 



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


apache是如何定义虚拟主机的 ?

配置文件中 <VirtualHost> </VirtualHost> 内

nginx是如何定义虚拟主机的?

在配置文件中server{} 的标签


虚拟主机一般分为如下三类:

基于域名的虚拟主机

基于端口的虚拟主机

基于ip的虚拟主机


配置基于域名的虚拟主机

  server {

        listen       80;

        server_name  www.vipdailiang.com;

        location / {

            root   html/www;   

            index  www.html ;

        }

    }


1)首先需要在/app/zpy/nginx/html下创建 www目录

mkdir -p /app/zpy/nginx/html/www

2)在www目录下创建www.html,并添加www.zipeiyi.com的内容 

echo "www.vipdailiang" >> /app/zpy/nginx/html/www/www.html

3)最重要的一步,nginx一旦应用在企业环境中,它的作用会变得很重要,所以修改了配置文件,不要贸然重启,需要先检查一遍nginx配置文件的合理性

/app/zpy/nginx/sbin/nginx -t

nginx: the configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf syntax is ok

nginx: configuration file /app/zpy/nginx-1.8.1//conf/nginx.conf test is successful

4)平滑重启nginx 

/app/zpy/nginx/sbin/nginx -s reload 


备注:

如果nginx参数过多记不住怎么办??

/app/zpy/nginx/sbin/nginx -h

Options:

  -?,-h         : this help

  -v            : show version and exit

  -V            : show version and configure options then exit

  -t            : test configuration and exit

  -q            : suppress non-error messages during configuration testing

  -s signal     : send signal to a master process: stop, quit, reopen, reload

  -p prefix     : set prefix path (default: /app/zpy/nginx-1.8.1//)

  -c filename   : set configuration file (default: conf/nginx.conf)

  -g directives : set global directives out of configuration file


最后在浏览器输入10.0.70.3

技术分享

但是如果输入:www.vipdailiang.com 

技术分享


这是因为你电脑本机解析不到的原因:

有两种解析的办法:

  1. 修改本机的host文件(linux是/etc/hosts ,windows的C\windows\system32\drivers\etc\hosts

    添加10.0.70.3 www.vipdailiang.com

  2. 在本地DNS里面加入域名对应关系

最后效果如下,至此基于域名的虚拟主机配置完毕


技术分享


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

  server {

        listen       80;

        server_name  www.vipdailiang.com;

        location / {

            root   html/www;   

            index  www.html ;

        }

    }

  server {

        listen       80;

        server_name  bbs.vipdailiang.com;

        location / {

            root   html/bbs;   

            index  bbs.html ;

        }

    }

这样你就可能会想了,怎么都是80端口,那么我在浏览器输入http://10.0.70.3 会出现什么???

别急,细细道来

我做了一个实验,发现是下图的结构:

如果你用ip进行测试的化,那么应该是按照 server{}的顺序来的

技术分享

总结:基与域名的虚拟主机,就不要这样测试了,应该用域名测试

技术分享


技术分享

到此基于域名的nginx虚拟主机讲解完毕



配置基于端口的虚拟主机

  server {

        listen       8001;

        server_name  www.vipdailiang.com;

        location / {

            root   html/www;   

            index  www.html ;   → 这里面内容改为 ism

        }

    }

  server {

        listen       8002;

        server_name  www.vipdailiang.com;

        location / {

            root   html/bbs;   

            index  bbs.html ;  →这里面内容改为imp

        }

    }


netstat -tunpl | grep nginx ,可以看到nginx起了8001与8002两个端口

tcp  0    0    0.0.0.0:8001   0.0.0.0:*     LISTEN      8398/nginx         

tcp  0    0    0.0.0.0:8002   0.0.0.0:*     LISTEN      8398/nginx  

那么该怎么检测呢??


curl www.vipdailiang.com:8001

ism

curl www.vipdailiang.com:8002

imp



配置基于IP的虚拟主机



这个需要有多块网卡,nginx服务器需要多个ip

这个在生产环境中极为少见,这里就不做解释了




ok。。至此nginx配置文件就讲解完成了 


本文出自 “隐渔” 博客,请务必保留此出处http://dailiang.blog.51cto.com/9484865/1826382

nginx目录配置详解

标签:nginx 虚拟主机 基于ip的虚拟主机 基于域名的虚拟主机 基于端口的虚拟主机 nginx配置文件

原文地址:http://dailiang.blog.51cto.com/9484865/1826382

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!