一、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. Windows ---- mysql 5.7 配置安装

    去官网下载mysql 下载地址    https://dev.mysql.com/downloads/mysql/    根据自己操作系统位数选择相对应的版本 点击Download下载 下载下来后是一 ...

  2. RTX Server SDK跨服务器

    反向单点登录RTX,即通过腾讯通登录到其他的系统,登录腾讯通后其他的系统不用输入用户名和密码即可登录.可能有二种情况.腾讯通和其他系统在同一台服务器上或在不同的服务器上.要调用腾讯通的登录验证接口的系 ...

  3. Tsung测试之配置文件

    Jabber配置: <?xml version="1.0"?> <!DOCTYPE tsung SYSTEM "/usr/local/tsung/sha ...

  4. easyui图标大全

    .icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background:url('icons/edit_ad ...

  5. JSON_UNESCAPED_UNICODE

    JSON_UNESCAPED_UNICODE(中文不转为unicode)

  6. [可行]setoolkit生成木马软件远程控制实例

    查看原文 选1,social-ensineering attacks 选4,create a payload and listener 选2,Windows Reverse_TCP Meterpret ...

  7. org.eclipse.wst.common.project.facet.core.xml

    Ctrl+Shift+R    *core.xml 修改Dynamic Web module 由3.1 切至2.几

  8. poj2480——Longge's problem(欧拉函数)

    Longge's problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9190   Accepted: 3073 ...

  9. CodeForces 620E New Year Tree(线段树的骚操作第二弹)

    The New Year holidays are over, but Resha doesn't want to throw away the New Year tree. He invited h ...

  10. Integer.MIN_VALUE

    static int MAX_VALUE           值为 2^31-1 的常量,它表示 int 类型能够表示的最大值. static int MIN_VALUE           值为 - ...