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

好了,暂时就说到这里吧,干活!!!
《“谈nginx配置文件,设置空主机头”》 有 1 条评论
[…] 接下来我们配置nginx让它能够根据我们项目需求来选择使用php的版本,如果你对nginx虚拟目录(多域名/项目)不太了解,可以参见https://www.markdream.com/technologies/server/nginx-config-null-host.shtml […]