Nginx虚拟主机与安全认证实战

知识要点:

配置Nginx虚拟主机实践

安全认证实践

安装验证

Nginx虚拟主机配置讲解

讲解配置之前我们要了解到什么是虚拟主机
如果你有两个不同域名的网站,但是你只有一台服务器,这时候怎么办?其实利用nginx或者apache都可以帮你用一台机器来模拟多台机器作为服务器提供服务。虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录。
先看一个最简单的虚拟主机配置示例

server { 
    listen 80; #监听80端口
    server_name www.app.com; #虚拟主机 www.app.com
    location / {                   #匹配所有
    index index.html; 
    root /nginx/html/;              #在/nginx/html/下寻找资源
    } 
}

如果说我们需要配置多台虚拟主机,我们该如何去配置那?

www.app.com -> /nginx/html
www.apptest.com ->/nginx/text
#两个网址指向不同的地址
server { 
listen 80; 
server_name a.test.com; 

#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on; 

index index.html; 
root /nginx/html/; 
}

server { 
listen 80; 
server_name b.test.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   10:08   0:00 nginx: master process ./nginx/sbin/nginx
nobody     2157  0.0  0.1  27372  1424 ?        S    10:08   0:00 nginx: worker process
nobody     2158  0.0  0.1  27372  1424 ?        S    10:08   0:00 nginx: worker process
root       2314  0.0  0.0 112660   968 pts/0    R+   10:09   0:00 grep --color=auto nginx
[root@localhost local]# 

然后使用htpasswd工具来生成密码,没有的话可以使用yum来进行安装(一般安装过http的话都是默认安装的了)

yum -y install httpd-tools #安装htpasswd工具 
cd /etc/nginx/             #切换目录 
htpasswd -c ./auth muzi    #使用htpasswd命令在当前目录创建一个名为auth的文件,用户为muzi回车后需要输入两次密码 
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块中即可
    有关Nginx虚拟主机与安全认证其实就是一个安装配置的过程,在这里分享给大家!

你可能感兴趣的:(Nginx虚拟主机与安全认证实战)