The server of Nginx(二)——Nginx基本功能配置
一、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基本功能配置的更多相关文章
- Nginx(二):虚拟主机配置
什么是虚拟主机? 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功 ...
- nginx 目录文件列表功能配置
工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果,而Nginx也可以满足这样的需求(nginx 目录列表功能默认是关闭的),这时就需要配置. ...
- Nginx (二) Nginx的反向代理负载均衡以及日志切割
Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来 ...
- 快速掌握Nginx(二) —— Nginx的Location和Rewrite
1 location详解 1.location匹配规则 Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理).location支持正 ...
- nginx(二)nginx的安装
下载 nginx官网下载地址 把源码解压缩之后,在终端里运行如下命令: ./configure make make install 默认情况下,Nginx 会被安装在 /usr/local/nginx ...
- Nginx(二) nginx 无法启动
有时候在客户端输入:nginx 但是终端会输出以下,显示启动失败 nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already i ...
- Nginx 开启目录浏览功能配置
在server节点下添加 server { listen ; server_name default; #index index.php; # 目录浏览功能 autoindex on; # 显示文件大 ...
- nginx安装及负载均衡配置
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二 ...
- Nginx常用功能配置二
Nginx常用功能配置二 Nginx location匹配设置 location作用:可以根据用户请求的URI来执行不同的应用,根据用户请求的网站的地址URL匹配. location语法: locat ...
随机推荐
- JAVA 中的IO流
Java中的IO流是用来处理设备与设备之前的数据传输,在java中以流的形式传输.流分为两类:字节流和字符流. 字节流:InputStream,OutPutSteam.(计算机内的数据都是以字节存储的 ...
- 虚拟机硬盘格式的选择:qcow2、 raw等
虚拟机硬盘格式的选择:qcow2. raw等曾经有过一段时间,徘徊于对虚拟机硬盘格式的迷惑中,2009年,终于得出了一些结论(下面的思路基本通用于其他虚拟机) 搜了下,发现大部分用qemu或者kvm的 ...
- java的内部编码
java运行时,内存中使用的字符编码是unicode. 在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格 ...
- Win 7 Windows Update无法自动更新解决方案
最近发现系统很长时间没有自动更新过了,手动更新后,提示返回错误码WindowsUpdate_8024402F.网络上搜索到的解决方法大多是删除更新临时目录,重启WINDOWS UPDATE服务,然而试 ...
- jquery UI datepicker汉化
由于近期工作需要,jquery ui的datepicker需要汉化,特此把代码贴在这$(function() { $.datepicker.regional["zh-CN"] = ...
- Perl 学习笔记-标量数据
最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...
- SQL2000中创建作业(定时查询,更新)(转)
出处:http://blog.csdn.net/xys_777/article/details/5683413 SQL2000中创建作业(定时查询,更新)企业管理器 --管理 --SQL Server ...
- select右三角消除(转)
代码如下: select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #; /*很关键:将默认的select选择框样式清除*/ a ...
- [转]ubuntu linux下DNS重启后丢失(不是Network-manager造成的情况)
从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf.d/head中加载而来,所以每回改resolv.conf都会失效,在此文件里面已经 ...
- AC620教程 第十五节 8位7段数码管驱动设计与验证
本章导读 电子系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602 ...