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

准备安装包
在这里插入图片描述

[root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel  #安装支持软件

[root@localhost opt]# useradd -M -s /sbin/nologin nginx		#创建运行的用户

[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命令执行路径优化
使用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
开启服务,关闭防火墙,就访问nginx网址
[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.aaa.com;    #修改域名

        charset utf-8;

        #access_log  logs/host.access.log;

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

在这里插入图片描述

访问控制

基于授权进行访问控制

需要用到htpasswd工具,安装此项工具
[root@localhost ~]# yum install -y httpd-tools

生成用户密码文件
[root@localhost init.d]# htpasswd -c /usr/local/nginx/passwd.db pan
New password: 
Re-type new password: 
Adding password for user pan
[root@localhost init.d]# ll /usr/local/nginx/passwd.db 
-rw-r--r--. 1 root root 42 8月  10 17:13 /usr/local/nginx/passwd.db

减少权限,提高安全
[root@localhost init.d]# cd /usr/local/nginx/
[root@localhost nginx]# chmod 400 passwd.db 
[root@localhost nginx]# chown nginx passwd.db 
[root@localhost nginx]# ll passwd.db 
-r--------. 1 nginx root 42 8月  10 17:13 passwd.db

修改配置文件
[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
 server {
        listen       80;
        server_name  www.aaa.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;
        }
[root@localhost nginx]# service nginx stop
[root@localhost nginx]# service nginx start

此时访问网页会要求输入账号密码
在这里插入图片描述
基于IP地址进行的访问控制
通过客户端IP地址,决定是否允许对页面访问
配置规则

  • deny IP/IP段:拒绝某个IP或IP段的客户端访问
  • allow IP/IP段:允许某个IP或IP段的客户端访问
  • 规则从上往下执行,如匹配则停止,不再往下匹配
修改主配置文件
除主机192.168.110.10之外允许其他客户端访问
[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
  server {
        listen       80;
        server_name  www.aaa.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.110.10;  #禁止此ip地址的主机访问
            allow all;              #其它全部允许
            root   html;
            index  index.html index.html;
        }
[root@localhost nginx]# service nginx restart

在这里插入图片描述

Nginx支持的虚拟主机

基于域名
在配置文件末尾大括号里单独插入

[root@localhost conf]# vim nginx.conf
server {
	   listen       80;
       server_name www.aaa.com;
       location / {
         root /var/www/aaa;
         index test.html;
     }
  }
server {
	   listen       80;
       server_name www.bbb.com;	#指定域名
       location / {
         root /var/www/bbb;		#指定页面路径
         index bbb.html;		#指定页面显示文件
     }
  }

在这里插入图片描述

在这里插入图片描述
基于端口

server {
       listen 192.168.110.10:80;
       server_name www.aaa.com:80;
       location / {
         root /var/www/aaa;
         index aaa.html;
     }
  }
server {
       listen 192.168.110.10:8080;
       server_name www.bbb.com:8080;
       location / {
         root /var/www/bbb;
         index bbb.html;
     }
  }

在这里插入图片描述

在这里插入图片描述
基于IP
需要添加一块网卡配置IP

server {
       listen 192.168.110.10:80;
       server_name www.aaa.com:80;
       location / {
         root /var/www/aaa;
         index aaa.html;
     }
  }
server {
       listen 192.168.110.6:80;
       server_name www.aaa.com:80;
       location / {
         root /var/www/bbb;
         index bbb.html;
     }
  }

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CN_PanHao/article/details/107920034