Nginx安装,进行状态统计、访问控制、搭建虚拟主机

一、Nginx基础

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,国内使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

它是一款高性能、轻量级web服务软件,有以下特点:

  • 稳定性高
  • 系统资源消耗少
  • 对HTTP并发连接的处理能力高
    单台物理服务器可支持30000~50000个并发请求

二、编译安装Nginx

在开始安装Nginx之前,首先安装dns服务,配置完成dns服务完成域名解析
在这里插入图片描述

1、安装准备
在这里插入图片描述
一台centos7作服务器。IP地址为192.168.179.144,网址www.cllt.com
一台Windows10作客户机。IP地址为192.168.179.110

[root@localhost opt]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

2.创建运行的用户

[root@localhost opt]# useradd -M -s /sbin/nologin nginx

3.编译安装

[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz
[root@localhost opt]# cd nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module	'开启stub_status状态统计模块'
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin	'nginx命令执行路径优化'

4.添加service管理

[root@localhost ~]# cd /etc/inid.d
[root@localhost init.d]# vim nginx    '添加配置'
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
   $PROG
   ;;
  stop)
   kill -s QUIT $(cat $PIDF)
   ;;
  restart)
   $0 stop
   $0 start
   ;;
  reload)
   kill -s HUP $(cat $PIDF)
   ;;
  *)
  		echo "Usage: $0 {start|stop|restart|reload}"
  		exit 1
esac
exit 0
[root@localhost init.d]# chmod +x nginx   '增加权限'
[root@localhost init.d]# chkconfig --add nginx
[root@localhost init.d]# chkconfig --level 35 nginx on

5.开启服务,进行测试

[root@localhost opt]# setenforce 0
[root@localhost opt]# iptables -F
[root@localhost opt]# service nginx start

在这里插入图片描述

三、增加状态统计

对Nginx配置文件进行修改

[root@localhost opt]# vim /usr/local/nginx/conf/nginx.conf
server {
        listen       80;
        server_name  www.cllt.com;    '修改域名'

        charset utf-8;

        #access_log  logs/host.access.log;

        location /status {        '增加此内容'
            stub_status on;       '开启状态统计'
            access_log off;       '关闭访问日志'
        }

访问网址192.168.179.144/status在这里插入图片描述

四、访问控制

这里的访问控制主要有两种,一种是基于授权进行访问控制,另一种是基于IP地址进行访问控制。

4.1 基于授权进行访问控制

1.这里的话和Apache的配置是一样的,需要用到htpasswd工具,安装此项工具

[root@localhost ~]# yum install -y httpd-tools

2.生成用户密码文件

[root@localhost nginx]# htpasswd -c /usr/local/nginx/passwd.db jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@localhost nginx]# ll passwd.db 
-rw-r--r--. 1 root root 44 89 14:10 passwd.db

3.减少权限,提高安全

[root@localhost nginx]# chmod 400 passwd.db 
[root@localhost nginx]# chown nginx passwd.db 
[root@localhost nginx]# ll passwd.db 
-r--------. 1 nginx root 44 89 14:10 passwd.db

4.修改配置文件

[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       80;
        server_name  www.cllt.com;

        charset utf-8;

        #access_log  logs/host.access.log;

        location / {  
            auth_basic "secret";     '在此项中添加权限'
            auth_basic_user_file /usr/local/nginx/passwd.db;  '密码文件位置'
            root   html;
            index  index.html index.html;
        }

5.进行测试
在这里插入图片描述
在这里插入图片描述

4.2 基于IP地址进行的访问控制

  • 配置规则
    deny IP/IP段:拒绝某个IP或IP段的客户端访问
    allow IP/IP段:允许某个IP或IP段的客户端访问
    规则从上往下执行,如匹配则停止,不再往下匹配

1.修改主配置文件

[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
  server {
        listen       80;
        server_name  www.cllt.com;

        charset utf-8;

        #access_log  logs/host.access.log;

        location / {
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            deny 192.168.179.110;  '禁止此ip地址的主机访问'
            allow all;              '其它全部允许'
            root   html;
            index  index.html index.html;
        }

2.测试
在这里插入图片描述

五、Nginx虚拟主机

Nginx支持的虚拟主机有三种

  • 基于域名的虚拟主机
  • 基于IP的虚拟主机
  • 基于端口的虚拟主机

5.1 基于域名的虚拟主机

1.修改DNS配置文件,增加域名www.juejue.com
修改两个域名的首页内容

2.修改Nginx配置文件

[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       80;
        server_name  www.cllt.com;
        charset utf-8;
        access_log  logs/www.cllt.com.access.log;
        location / {
            root   /var/www/html/cllt;
            index  index.html index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;
        server_name  www.juejue.com;
        charset utf-8;
        access_log  logs/www.juejue.com.access.log;
        location / {
            root   /var/www/html/juejue;
            index  index.html index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
[root@localhost html]# service nginx restart

2.分别用两个域名进行访问
在这里插入图片描述
在这里插入图片描述

5.2 基于端口的虚拟主机

1.修改配置文件

server {
        listen       192.168.179.144:80;  
        server_name  www.cllt.com;
        charset utf-8;
        access_log  logs/www.cllt.com.access.log;
        location / {
            root   /var/www/html/cllt;
            index  index.html index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
   server {
        listen       192.168.179.144:8080;    '修改为8080端口'
        server_name  www.cllt.com;
        charset utf-8;
        access_log  logs/www.cllt8080.com.access.log;  
        location / {
            root   /var/www/html/cllt8080;  '添加新的站点首页'
            index  index.html index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

2.添加8080端口的站点首页

[root@localhost html]# vim cllt8080/index.html 
<h1>this is cllt8080 web</h1>

3.测试
在这里插入图片描述
在这里插入图片描述

5.3 基于IP的虚拟主机

将虚拟机增加一块网卡,IP地址为192.168.179.155

1.修改dns配置文件,将192.168.179.155解析为www.juejue.com
在这里插入图片描述
2.修改Nginx配置

[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       192.168.179.144:80;
        server_name  www.cllt.com;
        charset utf-8;
        access_log  logs/www.cllt.com.access.log;
        location / {
            root   /var/www/html/cllt;
            index  index.html index.html;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       192.168.179.155;
        server_name  www.juejue.com;
        charset utf-8;
        access_log  logs/www.juejue.com.access.log;
        location / {
            root   /var/www/html/juejue;
            index  index.html index.html;
        }
error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

3.进行测试
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值