- Nginx优化
一、Nginx网站服务
1、Nginx的作用和特点
1)Nginx的作用
轻量级WEB服务器端软件
支持缓存功能
支持反向代理配置负载均衡
2)Nginx特点
稳定性强
硬件资源占用小
支持高并发
支持静态网站功能
动态网站需要和fastcgi中的php-fpm模块结合使用
2、安装nginx
1)安装依赖软件[root@centos01 ~]# yum -y install pcre-devel zlib-devel 2)创建管理nginx用户 [root@centos01 ~]# useradd -M -s /sbin/nologin nginx 3)配置nginx [root@centos01 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_stub_status_module 4)编译安装nginx [root@centos01 nginx-1.6.0]# make && make install 5)优化nginx命令 [root@centos01 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 6)控制nginx服务 [root@centos01 ~]# nginx 启动服务 [root@centos01 ~]# killall -s HUP nginx 重新启动nginx [root@centos01 ~]# killall -s QUIT nginx 停止 7)Nginx全局配置优化 [root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf user nginx; 管理nginx服务账户 worker_processes 1; 根据CPU核心数填写 events { use epoll; 使用epoll模型响应 worker_connections 4096; 一个进程最多响应4096个客户端,CPU核心数乘以4096 } 8)检查Nginx的版本号和安装的模块 [root@centos01 ~]# nginx -V
3、配置Nginx统计访问情况
1)修改主配置文件支持统计功能在虚拟主机配置中写
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
64 server {
65 listen 80;
66 server_name www.benet.com;
67 charset utf-8;
68 access_log logs/www.benet.com;
69 location / {
70 root /var/www/;
71 index index.html;
72 }
73 location /status {
74 stub_status on;
75 access_log off;
76 }
77 }
2)统计日志信息
Active connections: 1 当前活动链接
server accepts handled requests 已经处理的连接信息
6 6 19 已处理的连接数、成功的TCP握手次数、已处理的请求数
4、Nginx的授权访问控制
1)安装httpd-tools工具
[root@centos01 ~]# yum -y install httpd-tools
2)生成身份验证文件
[root@centos01 ~]# htpasswd -c /usr/local/nginx/.admin admin
3)修改nginx主配置文件对网站统计功能进行身份验证
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
73 location /status {
74 auth_basic "secret";
75 auth_basic_user_file /usr/local/nginx/.admin;
76 stub_status on;
77 access_log off;
78 }
5、限制客户端个访问Nginx
1)限制类类型
deny:拒绝访问
allow:允许访问
2)拒绝192.168.100.10客户端访问nginx允许其他任何人访问
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
69 location / {
70 root /var/www/;
71 index index.html;
72 deny 192.168.100.10;
73 allow all;
74 }
二、配置LNMP
1、LNMP的组成
1)L
Linux系统
2)N
Nginx
3)M
Mysql数据库
4)P
php语言开发的网站
python语言开发的网站
perl语言开发的网站
html语言开发网站
2、Nginx支持动态网站处理的方式
1)fastcgi功能
需要在编译php的过程中安装php-fpm模块
Php-fpm模块监听的默认端口是9000
2)nginx配置动静分离
客户端请求静态数据nginx响应
客户端请求动态数据nginx转发向apache响应
3、Nginx正则表达式
1)Nginx正则表达式的作用
配置动静分离使用
通过正则表达式配置区分静态网站数据和动态网站数据
2)常见的正则表达式匹配的类型
~:标识~后边一个字符串,~/image/之配置image关键字
=:精确查找,location =/www.benet.com,之配置www.benet.com域名
~:区分大小写匹配
~:不区分大小写
!~:对区分大小写取反
!~:对不区分大小取反
3)正则表达式常见的符号
*重复0次或者多次
+重复一次或者多次
?重复0或者1次
.匹配除换行符意外的任意字符
^匹配字符串开始
$匹配字符串结尾
()表达式开始和结束为止
[]定义匹配的范围
|运算符
4、配置动静分离
1)配置动静分离加载proxy模块
配置反向代理和动静分离使用
默认安装nginx自动安装proxy模块
2)修改nginx主配置文件实现动静分离
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
47 location ~ \.php$ {
48 proxy_pass http://www.accp.com:80;
49 }
3)配置网站静态图片nginx响应
[root@centos01 html]# vim /usr/local/nginx/conf/nginx.conf
47 location ~.*\.(gif|jpg|png|bmp|swf)$ {
48 root html;
49 index index.html index.htm;
50 }