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 […]