Nginx安装和配置介绍
Nginx 安装使用
1.下载nginx的安装包(www.baidu.com)
2.tar -zxvf ngxin-1.10.2.tar.gz
3.cd nginx-1.10.2
4. mkdir /data/program/nginx
5. ./configure –prefix=/data/program/nginx
6. Make&&make install
常见问题(依赖组建缺失)
yum –y install gcc gcc-c++ autoconf automake
yum –y install pcre pcre-devel
yum –y install zlib zlib-devel
启动命令 NGINX_HOME/sbin/nginx ./nginx
停止命令 NGINX_HOME/sbin ./nginx -s stop
配置文件重新加载:nginx -s reload
校验nginx.conf 文件的语法格式 , nginx -t
Centos关闭防火墙 sudo systemctl stop firewalld.service
负载均衡策略
1.轮询
upstream tomcat{
server 192.168.130.130:8080;
server 192.168.130.131:8080;
}
2.ip_hash
upstream tomcat{
ip_hash;
server 192.168.130.130:8080;
server 192.168.130.131:8080;
}
3.权重 weight
upstream tomcat{
server 192.168.130.130:8080 weight=3;
server 192.168.130.131:8080 weight=1;
}
4.响应时间
upstream tomcat{
server 192.168.130.130:8080;
server 192.168.130.131:8080;
fair;
}
5.url_hash 相同的url 走一个服务器
Nginx 配置文件,以轮询为例
upstream tomcat{
server 192.168.232.133:8080;
server 192.168.232.132:8080;
}
server {
listen 80;
server_name localhost;
location /
{
proxy_pass http://tomcat;
proxy_set_header Host $host;
}
}
Ngxin 进程模型及工作原理
Master/ worker进程
nginx是异步非阻塞的。
Nginx的日志管理
#access_log logs/host.access.log main;
Log声明 路径及文件名 日志标识
#log_format main '$remote_addr- $remote_user [$time_local] "$request" '#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" "$http_x_forwarded_for"';
远程ip – 远程用户/用户时间 请求方法(get/post) 状态 请求body长度 referer 来源信息 http-user-agent 用户代理 被转发的原始请求IP
Location
Location主要做定位功能,根据uri来进行不同的定位
语法:location [=|~|~*|^~] /uri/ { …}
= 开头表示精确匹配
^~ 表示uri以某个常规字符串开头,相当于匹配uri路径
~ 区分大小写的正则匹配
!~ 区分大小写不匹配
!~* 不区分大小不匹配
~* 不区分大小写的正则匹配
/ 通用匹配
匹配优先级
1.首先匹配精准路径
2.如果两个location都是一般匹配规则,那么会按照最长路径匹配
3.一般匹配和正则匹配的过程是:首先会选择一般匹配过程中的大前缀匹配,但是匹配过程不会停止,最大前缀匹配只是一个临时结果,nginx还会继续检查正则location。按照正则location在配置文件的物理顺序做匹配,如果匹配到一条正则location,就不会考虑后面的规则。
Return指令
语法: return code/uri;
停止处理并返回状态码给客户端
Rewrite指令
语法: rewrite regex replacement ; flag
Last/break/redirect/permant
用于请求重定向
对远程指定ip进行限制
浏览器判断
Gzip压缩
Gizp主要对内容、静态文件做压缩,用来提升网站访问速度,节省带宽
Gizp on|off 是否开启
Gzip_buffer 32 4k 设置系统获取多少个单位的缓存用于存储gzip的压缩结果数据流
Gzip_comp_level [1-9] 压缩级别,值越高,压缩的内容越小
Gzip_min_length 200 ;开始压缩的最小长度
Gzip_types 对哪些文件做压缩处理
Gzip_vary on|off 是否传输gzip压缩标识
Gzip_disable 正则匹配UA,表示对指定的浏览器不做gzip压缩
图片、mp3、视频之类, 上传图片的时候压缩,不建议压缩,压缩性价比低,损耗CPU资源,太小的文件没必要压缩,200KB