0%

配置虚拟主机

配置虚拟主机

本节主要讲解如果使用nginx配置多个虚拟主机,也就是我们通常说的配置域名.接下来我们配置两个域名a.zhangke.com,b.zhangke.com

准备站点

我们站点统一放到/data/zhangke下,每个站点根目录名称都和域名相同,具体如下。
新建a.zhangke.com的站点根目录,目录新建a站的首页index.html,内容如下

1
this is a.zhangke.com

新建b.zhangke.com站点根目录,目录下新建b站首页index.html,内容如下

1
this is b.zhangke.com

新建日志文件目录

我们统一讲日志存放到/data/logs下,这边是存放nginx日志,所以nginx日志保持在当前的nginx目录下.日志统一存放相对来说比较规范(如果你不习惯,你可以按自己的方式来做),另外当出问题时,可以帮助我们进行分析问题的原因。

配置nginx虚拟主机

  • 增加nginx主配置文件nginx.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62

    user nginx;
    worker_processes 1;

    error_log /home/root/logs/error.log warn;
    pid /var/run/nginx.pid;


    events {
    worker_connections 1024;
    }


    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /home/root/logs/access.log main;
    error_log /home/root/logs/error.log error;

    sendfile on;
    #tcp_nopush on;

    keepalive_timeout 65;

    #gzip on;
    # include /etc/nginx/conf.d/*.conf;


    ## a.zhangke.com 配置
    server{
    server_name a.zhangke.com;
    listen 80;

    access_log /home/root/logs/a.zhangke.com-access.log main;
    error_log /home/root/logs/a.zhangke.com-error.log error;

    location / {
    root /home/root/a.zhangke.com/;
    index index.html;
    }
    }
    # b.zhangke.com 配置
    server{

    server_name b.zhangke.com;
    listen 80;

    access_log /home/root/logs/b.zhangke.com-access.log main;
    error_log /home/root/logs/b.zhangke.com-error.log error;

    location / {
    root /home/root/b.zhangke.com/;
    index index.html;
    }
    }
    }

  • 配置讲解

    • server{}:配置虚拟主机必须有这个段。

    • server_name:虚拟主机的域名,可以写多个域名,类似于别名,比如说你可以配置成
      server_name b.zhangke.com c.zhangke.com ,这样的话,访问任何一个域名,内容都是一样的

    • listen 80,监听ip和端口,这边仅仅只有端口,表示当前服务器所有ip的80端口,如果只想监听127.0.0.1的80,写法如下:

      1
      listen 127.0.0.1:80
    • root /home/root/b.zhangke.com:站点根目录,你网站文件存放的地方。注:站点目录和域名尽量一样,养成一个好习惯

    • access_log /home/root/logs/nginx/b.ttlsa.com-access.log main:访问日志

    • location /{} 默认uri,location具体内容后续讲解

重启并打开站点

nginx -t 检查nginx配置是否ok,命令如下:

1
2
3
#/usr/local/nginx-1.5.1/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.5.1/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.5.1/conf/nginx.conf test is successful

如果看到以上两行ok和successful就表示配置问题,那接下来我们启动nginx

启动nginx,或者重启nginx,我已经启动了nginx,所以使用的重启,命令如下

1
nginx -s reload

修改本机的host。添加下面这俩行

1
2
127.0.0.1 a.zhangke.com 
127.0.0.1 b.zhangke.com

使用浏览器访问这两个站点,就可以看到我们刚才添加的内容