谈nginx配置文件,设置空主机头

nginx配置文件一定要遵循从上至下的原则,不然很多问题都会出现,

nginx开启这就不用说了

nginx开启空主机头(下面这个是我的nginx.conf主配置文件,不出意外的话,放到你的服务器上也可以运行的)


worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
   
    sendfile        on;
    
    keepalive_timeout  65;

    gzip on;
    gzip_min_length 1k;
	gzip_buffers 16 64k;
	gzip_http_version 1.1;
	gzip_comp_level 6;
	gzip_types text/plain application/javascript text/html text/css application/json;

    server {
    	listen 80 default;
        server_name  _;
        root   html;
        location / {
        	return 404;
        }

        location ~ /.ht {
        	deny  all;
        }
    }
    include vhost/*.conf;
}

关于空主机头有什么效果等会再说。你在上面的配置文件最后看到这么一句

include  vhost/*.conf;

没错,我现在是在配置虚拟主机,为了方便管理,我将它们都隔开了,也就是说一个虚拟主机单独使用一个配置文件,路径在/usr/local/nginx/conf/vhost/demo.conf

我就以demo虚拟主机来介绍了,来先看demo.conf(如果你基于我上面的文件,再加上这个文件,不出意外的话你也可以运行的)文件内容

server {
        listen 80;
        server_name demo.markdream.com; 

        root /mnt/web;
        index  index.html index.php; 

        location ~ \.php$ {
           fastcgi_pass   127.0.0.1:9000;
           try_files $uri =404;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
           include        fastcgi_params;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp3|woff|js|css)$
        {
                expires      7d;
        }
}

你会看到server_name 为demo.markdream.com,比如我现在的服务器的ip是192.168.1.1那么我在做DNS解析,我将其解析过来那么就可以直接访问我上面配置的这个虚拟主机了,回到上文提及的空主机头配置,假如你现在也有一个域名test.com也指向到我的服务器ip,如果我没有配置空主机头的话,那么用你的域名也可以访问我的网站,例如www.baidu.com访问百度,www.test.com也是百度,这样以来,我的服务器就成为公共的了。这样非常的不好,随意给别人恶意指向,那就不太理想。

如果我设置了空主机头,例如我只能指定一个域能绑定到我这台服务器ip,就能访问,其他的不好意思给你404。下面我就以我自己的两个域来演示

http://demo.markdream.com/  和 http://hack.markdream.com/  都进行指向同一台服务器,看效果

demo

hack

好了,暂时就说到这里吧,干活!!!

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。