一、Nginx访问控制

(1)基于授权的访问控制

  Nginx于Apache一样,可以实现基于用户授权的访问控制,当客户端要访问相应网站或者目录时要求输入用户名密码才能正常访问,配置步骤与Apache基本一致

  第一步:生成用户密码认证文件,使用htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与之前讲解Apache认证时一样

~]#htpasswd  -c  /usr/local/nginx/passwd.db   test   #回车后会让输入两次密码

  修改密码文件的权限为400,将所有者改为nginx,使nginx的运行用户能够读取

~]#chmod 400  /usr/local/nginx/passwd.db
~]#chown nginx /usr/local/nginx/passwd.db

  第二步:修改主配置文件对应目录,添加认证配置项auth项,检查语法,重启

 server { ...
  local / {
   root html;
    index index.html index.php;
    auth_basic "secret";
    auth_basic_user_file /usr/local/nginx/passwd.db;
~]#nginx -t
~]#service nginx reload

(2)基于客户端的访问控制

Nginx基于客户端的访问控制要比Apache简单,规则从上往下匹配,如匹配则停止,不再往下匹配

格式:

deny ip/ip段

allow ip/ip段

例:除了10.1.1.0网段,192.168.1.0网段,剩余所有ip还有192.168.1.1都不能登录

 location / {
  root html;
  index index.html index.php;
  deny 192.168.1.1;
  allow 192.168.1.0/24;
  allow 10.1.1.0/16;
  deny all;
  }

二、Nginx虚拟主机

  可以在一台服务器上,创建多个网站,每个虚拟Web站点都有独立的"server{}"配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的

  Nginx支持的虚拟主机有三种:基于域名、基于IP、基于端口

(1)基于域名的虚拟主机搭建(最常用90%以上都用这种)

①为www.bt.com 和 www.test.com准备域名解析,可修改hosts文件

②准备各网站的网站目录及测试首页

~]#mkdir -p /var/www/html/btcom  testcom

③在两个文件夹里创建index.html

④修改nginx.conf,配置两个 "server{}"区域(注意红色字体是我们要注意的)

 server {
  listen    80;
  server_name  www.test.com;
  charset utf-8;
  access_log logs/www.test.log main;
  location / {
      root  /var/www/html/testcom;
      index  index.html index.htm;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
      root html;
  }
}

⑤以域名访问两个网站

(2)基于IP的虚拟主机搭建(IP太贵了,不常用)

①准备多个IP地址,可使用子接口或者多网卡

例如:ifconfig  eth0:0 192.168.1.2/24   设置子接口网址

②准备各网站的目录及测试首页

③修改nginx.conf,配置两个 "server{}"区域(注意红色字体是我们要注意的,注意对比区别)

 1 server {
2   listen    192.168.1.2:80;
3   server_name  192.168.1.2;
4   charset utf-8;
5   access_log logs/www.test.log main;
6   location / {
7       root  /var/www/html/testcom;
8       index  index.html index.htm;
9   }
10   error_page 500 502 503 504 /50x.html;
11   location = /50x.html {
12       root html;
13   }
14 }

④以IP地址访问两个网站

(3)基于端口的虚拟主机搭建(公司内部测试使用较多)

①选择端口,选择系统中不用的端口

②准备各网站的目录及测试首页

③视情况准备域名解析,根据配置文件里判断是否要解析

④修改nginx.conf,配置两个 "server{}"区域(注意红色字体是我们要注意的,注意对比区别)

 1 server {
2   listen    192.168.1.2:81; #注意:第二个server端口改为81,前面需要用域名登录就把前面的ip地址改为域名
3   server_name  192.168.1.2; #注意:根据需要改为域名
4   charset utf-8;
5   access_log logs/www.test.log main;
6   location / {
7       root  /var/www/html/testcom;
8       index  index.html index.htm;
9   }
10   error_page 500 502 503 504 /50x.html;
11   location = /50x.html {
12       root html;
13   }
14 }

⑤以IP地址或者域名访问两个网站,注意输入ip时,后面跟端口号http://192.168.1.2;81

三、平滑升级

  在安装完nginx1.6以后,在不停用服务的情况下,升级到1.8(注意不要跨版本升级),如果直接安装的话,会端口冲突,修改端口的话,客户端还不认,首先我们分析其实升级nginx就是把sbin下的nginx主程序文件给替换下就可以了,其他文件不需要动,那么我们知道,nginx运行时候会有两个进程在运行,我们要实现1.8版本和1.6版本同时运行,也就是有4个进程同时运行,然后再把旧进程kill掉,在掌握这个大方向后,让我们来看一下具体操作。

 ~]#ps -aux | grep nginx                                                       # 可以查看到master主进程和worker进程
~]#tar zxvf nginx-1.8 -C /usr/src/
~]#cd /usr/src/nginx-1.8/
~]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make #注意这里只编译拿到新的主程序文件nginx即可,不能安装
~]#mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old #把1.6版本的主程序文件修改为别的名字,这时原程序在内存中跑,不影响使用
~]#cp /usr/src/nginx-1.8/objs/nginx /usr/local/nginx/sbin #把1.8的主程序文件拷贝到1.6版本文件夹中,注意主配置文件nginx.conf可以更换也可以不换
~]#kill -USR2 `cat /usr/local/nginx/logs/nginx.pid #通过这个语句就产生了一个新的nginx.pid文件,以前的pid文件名字会被修改成nginx.pid.oldbin.
~]#ps -aux | grep nginx #这个时候我们可以看到有4个关于nginx的进程
~]#kill -s QUIT 原来nginx的进程号 #结束原1.6版本的nginx进程

四、Nginx反向代理  

  注意反向代理当客户端访问我们的网站时,输入的是代理服务器IP或域名,这里就是Nginx的公共IP
  配置方法:nginx.conf文件中每个server段就是一个主机或虚拟主机,在一个server段中的location  / 中把网站家目录(root  html)和首页(index index.html)注释掉,添加
proxy_pass  http://实际处理请求的服务器IP;

The server of Nginx(二)——Nginx基本功能配置的更多相关文章

  1. Nginx(二):虚拟主机配置

    什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功 ...

  2. nginx 目录文件列表功能配置

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果,而Nginx也可以满足这样的需求(nginx 目录列表功能默认是关闭的),这时就需要配置. ...

  3. Nginx (二) Nginx的反向代理负载均衡以及日志切割

    Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来 ...

  4. 快速掌握Nginx(二) —— Nginx的Location和Rewrite

    1 location详解 1.location匹配规则 Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理).location支持正 ...

  5. nginx(二)nginx的安装

    下载 nginx官网下载地址 把源码解压缩之后,在终端里运行如下命令: ./configure make make install 默认情况下,Nginx 会被安装在 /usr/local/nginx ...

  6. Nginx(二) nginx 无法启动

    有时候在客户端输入:nginx 但是终端会输出以下,显示启动失败 nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already i ...

  7. Nginx 开启目录浏览功能配置

    在server节点下添加 server { listen ; server_name default; #index index.php; # 目录浏览功能 autoindex on; # 显示文件大 ...

  8. nginx安装及负载均衡配置

    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二 ...

  9. Nginx常用功能配置二

    Nginx常用功能配置二 Nginx location匹配设置 location作用:可以根据用户请求的URI来执行不同的应用,根据用户请求的网站的地址URL匹配. location语法: locat ...

随机推荐

  1. linux下echo与time服务的程序实现

    一.针对ECHO服务的TCP客户软件的实现 1.网络拓扑结构: 2.源码: #include <stdio.h> #include <stdlib.h> #include &l ...

  2. Linux的作业管理

    一.作业管理的场景 作业管理(job control)是在bash环境下使用的,主要使用在同一个bash中管理多个作业的场景,譬如登录bash之后想同时复制文件.数据搜索,编译. 但是bash的作业管 ...

  3. SQL Server横向扩展:设计,实现与维护(2)- 分布式分区视图

    为了使得朋友们对分布式分区视图有个概念,也为了方便后面的内容展开,我们先看看下面一个图:     讲述分布式分区视图之前,很有必要将之与我们常常熟悉的分区表和索引进行区别. 首先,分布式分区视图是一个 ...

  4. CentOS 6.5 下安装 Sun JDK 1.7

    下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 得到 jdk-7u51-l ...

  5. vmware centos7 静态ip设置

    最近在学习linux环境部署~~~~ 首先,将网络适配设置成为桥接模式 查看本机IP地址,ipconfig,记住ipv4地址和默认网关地址,等会配置的时候要用 启动Centos,进入终端模式,设置IP ...

  6. redis集群部署及常用的操作命令(下)

    搭建好集群之后,为了扩容需要再加入一个节点.那就再复制一个7006,改为相应的redis.conf(复制了改个port就好,如果复制的redis之前属于集群,需要把关联的node.conf之类的去掉) ...

  7. 白盒测试实践-任务进度-Day03

    所使用静态代码检查工具 阿里巴巴Java开发代码检测IDE插件 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 任务进度 经过前期的学习和会议筹备,今天我们小组召开了代码评审会议.以下是今天 ...

  8. java IO通过字节流,字符流 读出写入

    一:通过字节流操作数据的写入,读出 /** * 通过字节流写入和读出 * @param args */ public static String filePath = "G:" + ...

  9. JAVA 异常分类与理解

    摘自CSDN:::::http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了 ...

  10. SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)

    在上一篇文章,讲了服务的注册和发现.在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的.Spring cloud有两种服务调用方式,一种是ribbon+r ...