一、Nginx的编译安装
#yum -y install pcre-devel openssl-devel 安装依赖包
下载软件源码包
#tar xf nginx-1.10.2.tar.gz -C /usr/src 解压缩包
useradd -s /sbin/nologin -M www 创建程序用户www
cd /usr/src/nginx-1.10.2 进入解压目录
./confingure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
http_stub_status_module 记录nginx基本访问状态信息等的模块 http_ssl_module 用于加密的http连接
make && make install 编译安装
ln -s /usr/local/nginx/sbin/* /usr/local/sbin 创建软连接
/usr/local/nginx/sbin/nginx 启动nginx
二、Nginx的主配置文件./nginx/conf/nginx.conf
1、 主配置文件的核心框架
全局配置指令 |
|
User |
配置worker进程的用户用户组 |
Worker_processes |
指定worker进程启动的数量,这些进程用于处理客户的所有连接。其数量选择取决于服务器环境、磁盘子系统及网络基础设备。一般与CPU绑定的负载处理器核心的数量相同,并以1.5~2.0乘以这个数作为I/O密集型负载 |
Error_log |
是所有错误写入的文件,如果在其他区段没有设置该参数,那么这个日志 文件将记录所有的错误。 |
pid |
记录主进程ID的文件,这个设置将会覆盖编译时的默认配置。 |
use |
用于指示使用什么样的连接方式。这个设置将会覆盖编译时的默认配置。 |
Worker_connections |
配置一个工作进程能够接受并发连接的最大数。 |
2、Nginx的虚拟主机类型及配置实战
这里的“主机”是指主配置文件中的server块对外提供的虚拟主机,每一个server块代表一个虚拟主机,以“域名”、“IP”、“端口号”做区分,虚拟主机可以分为与之相对应的三种类型。
2.1 基于域名的虚拟主机
配置不同域名的虚拟主机
修改配置文件后检查配置文件,并重启Nginx服务
创建网页目录与网站的首页文件
mkdr -p /usr/local/nginx/html/server1/local1
添加本地映射,curl访问测试
在本地PC添加映射浏览器访问
三、Nginx Locations 代码块
Locations 定义如下:
locations [modifier] urii {...}
当一个请求进入时,uri 会被检测匹配一个最佳的locations(下表中的修饰符(modifier)会影响locationds的处理)。
顺序 |
匹配标识的location |
匹配说明 |
1 |
" location = / { " |
精确匹配 |
2 |
" location ^~ /images/ { " |
先进行字符串的前缀匹配,如果匹配到就不做正则匹配检查 |
3 |
" loction ~* .(gif | jpg | jpeg)$ { " |
正则匹配,*为不区分大小写 |
4 |
" location /documents/ { " |
匹配常规字符串,模糊匹配,如果有正则检查,正则优先 |
5 |
" location / { " |
所有location都不能匹配后的默认匹配原则 |
一般,当一个请求进入时,会与所有locations进行匹配,首先会进行精确匹配,若匹配不成功,将会进行字符串的前缀匹配,依次进行正则匹配、匹配常规字符串模糊匹配,若以上匹配都不成功,将会执行默认匹配。
四、Nginx访问日志轮询切割
默认情况下Nginx会把所有的访问日志生成到一个指定的访问日志文件access.log里,这样时间长了会使得该日志太大,比便于日志的分析与处理,因此,有必要对Nginx日志,通过定时任务按规定时间进行切割,使其分成不同的文件保存。
创建轮询切割脚本
通过定时任务每天凌晨00时执行一次脚本
00 00 * * * /bin/bash /server/scripts/cut_nginx_log.sh >/dev/null 2>&1
测试定时任务
修改系统时间
查看定时任务执行结果
五、Nginx rewrite
Nginx rewrite的主要功能也是实现URL地址重写。Nginx的rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配。默认参数编译时,Nginx就会安装支持rewrite的模块,但是,也必须要有PCRE软件的支持。
指令语法:rewrite regex replacement 【flag】;一个简单的URL rewrite跳转例子:
rewrite ^/(.*) http://www.baidu.com/$1 permanent;
rewrite为重写参数,regex部分“^/(.*) http://www.baidu.com/$1” $1取正则()部分的值,即www, flag的值如下表:
六、访问认证
1、创建密码文件
# which htpasswd 如果没有,yum安装 #yum -y install httpd
# htpasswd -bc /usr/local/nginx/conf/htpasswd yunjisuan 123123
2、在配置文件里加入两条配置信息
auth_basic "yunjisuan training";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
3、重启服务、访问验证