45day 虚拟主机配置实战

一,虚拟主机类型

1,实践基于域名的虚拟主机

[root@web02 ~]# cd /application/nginx/conf/

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

[root@web02 /application/nginx/conf]# cat -n nginx.conf

    1 worker_processes  1;

    2 events {

    3     worker_connections  1024;

    4 }

    5 http {

    6     include      mime.types;

    7     default_type  application/octet-stream;

    8     sendfile        on;

    9     keepalive_timeout  65;

    10     server {

    11         listen      80;

    12         server_name  www.etiantian.org;

    13         location / {

    14             root  html/www;

    15             index  index.html index.htm;

    16         }

    17     }

    18     server {

    19         listen      80;

    20         server_name  bbs.etiantian.org;

    21         location / {

    22             root  html/bbs;

    23             index  index.html index.htm;

    24         }

    25     }

    26     server {

    27         listen      80;

    28         server_name  blog.etiantian.org;

▽  29         location / {

    30             root  html/blog;

    31             index  index.html index.htm;

    32         }

    33     }

    34 }

  准备配置文件

1)[root@web02 /application/nginx/conf]# mkdir ../html/www

[root@web02 /application/nginx/conf]# echo "www.etiantian.org" >../html/www/index.html

[root@web02 /application/nginx/conf]# cat ../html/www/index.html

www.etiantian.org

2)[root@web02 /application/nginx/conf]# mkdir ../html/bbs

[root@web02 /application/nginx/conf]# echo "bbs.etiantian.org" >../html/bbs/index.html

[root@web02 /application/nginx/conf]# cat ../html/bbs/index.html

bbs.etiantian.org

3)[root@web02 /application/nginx/conf]# mkdir ../html/blog

[root@web02 /application/nginx/conf]# echo "blog.etiantian.org" >../html/blog/index.html

[root@web02 /application/nginx/conf]# cat ../html/blog/index.html

blog.etiantian.org

4)本地解析

echo "10.0.0.8 www.etiantian.org bbs.eiantian.org blog.etiantian.org" >>/etc/hosts

5)nginx配环境变量(可选)

[root@web02 /application/nginx/conf]# echo 'PATH="/application/nginx/sbin:$PATH"' >>/etc/profile

[root@web02 /application/nginx/conf]# . /etc/profile

6)nginx 重启

[root@web02 /application/nginx/conf]# nginx -t

nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful

[root@web02 /application/nginx/conf]# nginx -s reload

7)测试

[root@web02 /application/nginx/conf]# curl www.etiantian.org

www.etiantian.org

[root@web02 /application/nginx/conf]# curl bbs.etiantian.org

bbs.etiantian.org

[root@web02 /application/nginx/conf]# curl blog.etiantian.org

blog.etiantian.org

2,基于端口虚拟主机实践:

1)主配置文件

[root@web02 /application/nginx/conf]# cat nginx.conf

    keepalive_timeout  65;

    server {

        listen      80;

        server_name  www.etiantian.org;

        location / {

            root  html/www;

            index  index.html index.htm;

        }

    }

    server {

        listen      81;

        server_name  bbs.etiantian.org;

        location / {

            root  html/bbs;

            index  index.html index.htm;

        }

    }

    server {

        listen      82;

        server_name  blog.etiantian.org;

location / {

            root  html/blog;

            index  index.html index.htm;

        }

    }

2)启动nginx 查看和启动

[root@web02 /application/nginx/conf]# netstat -lntup|grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      14322/nginx: master

[root@web02 /application/nginx/conf]# nginx -t

nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful

[root@web02 /application/nginx/conf]# nginx -s reload

[root@web02 /application/nginx/conf]# netstat -lntup|grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*              LISTEN      14322/nginx: master

tcp        0      0 0.0.0.0:81              0.0.0.0:*              LISTEN      14322/nginx: master

tcp        0      0 0.0.0.0:82              0.0.0.0:*              LISTEN      14322/nginx: master

3)测试

[root@web02 /application/nginx/conf]# curl www.etiantian.org

www.etiantian.org

[root@web02 /application/nginx/conf]# curl bbs.etiantian.org:81

bbs.etiantian.org

[root@web02 /application/nginx/conf]# curl bbs.etiantian.org

www.etiantian.org

[root@web02 /application/nginx/conf]# curl blog.etiantian.org:82

blog.etiantian.org

[root@web02 /application/nginx/conf]# curl blog.etiantian.org

www.etiantian.org

总结;如果访问时不输入端口,就找默认的第一个端口(80),然后找server_name。

如果输入端口,先找到端口,再找server_name。

==============

1,先匹配请求的端口 2,然后匹配Server标签域名 3,把对应域名下面站点目录4,下的首页文件发给客户端5,如果没有匹配的域名,就把第一个虚拟机, 主机发给客户端

==============

3,基于IP的虚拟主机:

1)增加练个ip

[root@web02 ~]# ip addr add 10.0.0.9 dev eth0 label eth0:9

[root@web02 ~]# ip addr add 10.0.0.10 dev eth0 label eth0:10

2)配置文件

[root@web02 /application/nginx/conf]# cat -n nginx.conf

    1 worker_processes  1;

    2 events {

    3     worker_connections  1024;

    4 }

    5 http {

    6     include      mime.types;

    7     default_type  application/octet-stream;

    8     sendfile        on;

    9     keepalive_timeout  65;

    10     server {

    11         listen      10.0.0.8:80;

    12         server_name  www.etiantian.org;

    13         location / {

    14             root  html/www;

    15             index  index.html index.htm;

    16         }

    17     }

    18     server {

    19         listen      10.0.0.9:80;

    20         server_name  bbs.etiantian.org;

    21         location / {

    22             root  html/bbs;

    23             index  index.html index.htm;

    24         }

    25     }

    26     server {

    27         listen      10.0.0.10:80;

    28         server_name  blog.etiantian.org;

    29         location / {

    30             root  html/blog;

    31             index  index.html index.htm;

    32         }

    33     }

    34 }

3)启动nginx

[root@web02 /application/nginx/conf]# nginx -t

nginx: the configuration file /application/nginx-1.16.0//conf/nginx.conf syntax is ok

nginx: configuration file /application/nginx-1.16.0//conf/nginx.conf test is successful

[root@web02 /application/nginx/conf]# nginx -s stop

[root@web02 /application/nginx/conf]# nginx

[root@web02 /application/nginx/conf]# netstat -lntup|grep nginx

tcp        0      0 10.0.0.10:80            0.0.0.0:*              LISTEN      14967/nginx: master

tcp        0      0 10.0.0.9:80            0.0.0.0:*              LISTEN      14967/nginx: master

tcp        0      0 10.0.0.8:80            0.0.0.0:*              LISTEN      14967/nginx: master

4)测试

[root@web02 /application/nginx/conf]# curl 10.0.0.8

www.etiantian.org

[root@web02 /application/nginx/conf]# curl 10.0.0.9

bbs.etiantian.org

[root@web02 /application/nginx/conf]# curl 10.0.0.10

blog.etiantian.org

二,什么是恶意域名解析

        一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。

三,恶意域名解析的危害

        可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?

        假如那域名是不友善的域名,比如曾经指向非法网站,容易引发搜索引擎惩罚,连带IP受到牵连。即使域名没什么问题,但流量也会被劫持到别的域名,从而遭到广告联盟的封杀。

四,如何防止,配置里第一个标签如下配置

server{

listen 80;

server_name _default;

return 500;

}

你可能感兴趣的:(45day 虚拟主机配置实战)