一、Nginx虚拟主机配置
讲解配置之前我们要了解到什么是虚拟主机
如果你有两个不同域名的网站,但是你只有一台服务器,这时候怎么办?其实利用nginx或者apache都可以帮你用一台机器来模拟多台机器作为服务器提供服务。虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录。
先看一个最简单的虚拟主机配置示例
server {
listen 80; #监听80端口
server_name www.lzh.com; #虚拟主机
location / { #匹配所有
index index.html;
root /nginx/html/; #在/nginx/html/下寻找资源
}
}
配置多台虚拟主机
www.lzh.com -> /nginx/html
www.sqq.com ->/nginx/text
#两个网址指向不同的地址
server {
listen 80;
server_name www.lzh.com;
#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on;
index index.html;
root /nginx/html/;
}
server {
listen 80;
server_name www.sqq.com;
index index.html;
root /nginx/text/;
#禁止对self目录的访问
location /(html)/ {
deny all;
}
}
二、Http安全认证
首先我们要确保自己的Nginx是正常运行的!
[root@localhost local]# ps aux|grep nginx
root 2156 0.0 0.0 24844 720 ? Ss 23:08 0:00 nginx: master process ./nginx/sbin/nginx
nobody 2157 0.0 0.1 27372 1424 ? S 23:08 0:00 nginx: worker process
nobody 2158 0.0 0.1 27372 1424 ? S 23:08 0:00 nginx: worker process
root 2314 0.0 0.0 112660 968 pts/0 R+ 23:09 0:00 grep --color=auto nginx
[root@localhost local]#
然后使用htpasswd工具来生成密码,没有的话可以使用yum来进行安装
yum -y install httpd-tools #安装htpasswd工具
cd /etc/nginx/ #切换目录
htpasswd -c ./auth lzh #使用htpasswd命令在当前目录创建一个名为auth的文件,用户为lzh回车后需要输入两次密码
more ./auth #查看auth文件里的内容,有用户名和加密的字符串
server {
listen 80;
server_name localhost;
auth_basic "Auth access test!input your passward!"; #1, 输入密码前的提示
auth_basic_user_file /nginx/auth; #2, 密码文件
#charset koi8-r; #access_log
/var/log/nginx/host.access.log main;
location / {
root /opt/server;
index index.html index.htm;
}
}
访问页面时会提示输入密码验证用户
● 如果我们想要匹配的部分资源进行验证那么请把你1 2 两项放入location 匹配你所想要验证的文件
● 如果你想要全局加入验证的话请把你的配置文件放入server块中即可