一、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. cf499A-Watching a movie

    http://codeforces.com/problemset/problem/499/A A. Watching a movie   You have decided to watch the b ...

  2. Android 重写EditText回车事件

    之前遇到的问题没来得及记录下来,趁今晚有空就重新回忆并写下了. 我们在用到EditText这个空间时经常需要重写软键盘中的回车事件以配合我们接下来的响应,比如点击回车变成搜索.发送.完成等. Edit ...

  3. code1064 虫食算

    dfs搜索每个字母对应的数字 剪枝: 1.当一列上三个数a b c都已知时,如果 (a+b)%n!=c && (a+b+1)%n!=c 剪枝(+1是考量进位,注意&&) ...

  4. code1174 靶形数独

    主要是优化搜索顺序 从选择较少的点开始,可以大大提高效率 在search(x,y)找点的时候,对于一个空点(x y),设置一个评分score: score=min{ 横线x上能填的数字个数,竖线y上. ...

  5. ECS 游戏架构 理解

    转载自:http://blog.csdn.net/i_dovelemon/article/details/25798677 理解 组件-实体-系统 (ECS \CES)游戏编程模型 - 博客频道   ...

  6. Windows环境下搭建MosQuitto服务器

    Windows环境下搭建MosQuitto服务器 2018年04月16日 22:00:01 wistronpj 阅读数:1185  摘自:https://blog.csdn.net/pjlxm/art ...

  7. bootstrap导入JavaScript插件

    Bootstrap的JavaScript插件可以单独导入到页面中,也可以一次性导入到页面中.因为在Bootstrap中的JavaScript插件都是依赖于jQuery库,所以不论是单独导入还一次性导入 ...

  8. 3.3.4深度剖析ConcurrentLinkedQueue

    队列.链表之类的数据结构及其常用.Java中,ArrayList和Vector都是使用数组作为其内部实现.两者最大的不同在于:Vector是线程安全的,而ArrayList不是.此外LinkedLis ...

  9. emacs-ide配置

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; CEDET Configuration ;;;;;;;;;; ...

  10. [LintCode笔记了解一下]41.Maximum Subarray

    Given an array of integers, find a contiguous subarray which has the largest sum. 首先 當題目涉及到求最大最小值時,最 ...