利用Nginx服务在一台虚拟主机上搭建多个网站
- 在"/etc/nginx/conf.d/"目录下创建多个主机配置文件(一个server,就代表一个网站)
- 创建站点目录和站点目录中的首页文件;这里我使用的是默认站点目录"/usr/share/nginx/html"和默认的首页文件"index.html",大家也可以随意修改。
- 在Windows主机中编写"Windows/System32/drivers/etc/hosts"解析文件
- 利用Windows中的浏览器进行访问测试
网站的访问方式
- 基于域名的方式进行访问,上面已经说过,不在赘述了。
- 基于地址的方式进行访问。(只能使用指定的地址来访问)
- 基于端口的方式进行访问。
网站页面的访问原理
TIPS:当通过浏览器直接访问"10.0.0.7"时,若没有设置监听,那么默认打开的就是排序在最上面的网站首页。因为浏览器找到"10.0.0.7"这台服务器后,访问80端口。这时Nginx主配置文件"/etc/nginx/nginx.comf"就会加载"/etc/nginx/conf.d"所有的扩展配置文件,又因为没有具体的域名匹配,所以就会按照加载的顺序的第一个网站的首页文件返回给客户端。
网站的安全访问配置
- 根据用户访问的地址进行控制。需要用到nginxf访问模块:“ngx_http_access_module”;下图是我从Nginx官网截取的"ngx_http_access_module"模块的一些配置说明:
实际操作:
在shell命令行访问"blog.cxsnb.com/blog":
TIPS:location外面的信息,是全局配置的信息;location里面的信息,是局部信息。
- 根据用户访问进行认证;需要用到的模块为"ngx_http_auth_basic_module";下图是我从Nginx官网截取的一些"ngx_http_auth_basic_module"认证模块的配置说明:
实际操作:
第一步:编写网站的扩展配置文件
第二部:创建密码文件(密码文件中的信息必须是密文的)
第三步:测试
TIPS:密码文件"/etc/nginx/password/htpasswd"的初始权限是644,这样很不安全。可以把密码文件的权限改为600,这样其它用户就不能够获取到密码。但是只是简单的修改密码文件的权限,这样再使用浏览器访问网站时就会报"500"的错误。下面通过一张图讲解一下原理。