Nginx的安装
1、weget下载:http://nginx.org/download/nginx-1.6.2.tar.gz
2、进行安装:tar -zxvf nginx-1.6.2.tar.gz
3、下载所需要的依赖库文件
yum install pcre、yum install pcre-devel
yum install zlib 、yum install zlib-devel
4、进行configure配置: cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx看是否报错
5、编译安装make&& make install
6、启动nginx
cd /usr/local/nginx/目录下:
conf:配置文件
html:网页文件
logs:日志文件
sbin:主要二进制程序
启动命令:/usr/local/nginx/sbin/nginx
重启:/usr/local/nginx/sbin/nginx -s reload
停止:/usr/local/nginx/sbin/nginx -s stop
7、成功:查看是否启动netstat -ano|grep 80 失败:可能是80端口被占用
浏览器访问地址:http://192.168.43.126:80-->即可看到nginx的欢迎界面
Nginx配置文件说明
Nginx的虚拟主机配置
#虚拟主机配置
负载均衡策略
1、使用硬件复杂均衡策略实现,如使用F5、Array等负载均衡器
2、使用软件进行负载均衡。
如使用阿里云服务器负载均衡SLB
如使用Keepalived+Nginx
其他软件负载均衡如LVS(Linux Virtual Server)、haproxy等技术
Nginx优点
Nginx是一个很强大的高性能web和反向代理服务器。能够
负载均衡服务器;在高并发的情况下,Nginx是Apache服务器不错的代理产品:Nginx能够支持高达50000个并发连接数的响应。
Nginx的使用
nginx启动后,使用命令
ps -ef | grep nginx
则可以看到有master进程已启动,worker进程已启动,当然也可以看到他们的端口号;
停止命令后:/usr/local/nginx/sbin/nginx -s stop
则没有进程启动
重启nginx服务器:ps -ef | grep nginx -s reload
C:\Windows\System32\drivers\etc,在该目录下编辑hosts文件
新加
192.168.1.114 bhz.com
192.168.1.171 www.bhz.com
192.168.1.174 www.bhz.com
编辑linux的hosts文件
vim /etc/hosts
192.168.1.114 bhz.com
这样重启nginx后即可在windows物理机上访问 bhz.com:1234.com
Nginx的日志文件详解
nginx访问的日志文件放在logs/host.access.log下,并且使用main格式(当然也可以自定义格式)
对于main格式如下定义:
#日志文件输出格式 这个位置相当于全局设置
#log_format main '$remote_addr-$remote_user[$time_local]"$request"'
# ‘$staus $body_bytes_sent "$http_referer"’
# ' "$http_user_agent" "$http_x_forward_for" ';
#查看日志内容命令 :tail -n 100 -f nginx/logs/access.log
对Nginx的日志分析很重要,通常需要运维去对nginx的日志进行切割处理。比如实现一个定时任务,去处理nginx日志等。
第一步:分析如何去实现日志切分,编写shell脚本
第二步:定时任务对脚本进行调度: crontab -e
*/1****sh /usr/local/nginx/sbin/log.sh
把shell 脚本放到/skin下面;
根路径:/usr/local/nginx
日志名称: bhz.com.access.log
当前路径: /usr/local/nginx/logs
要备份到的路径:/usr/local/nginx/datalogs文件夹下
当前logs的文件路径:
Baktime:备份时间—备份昨天的日志
Bakfile:
crontab -e
Wq保存后
每一分钟执行一次
Nginx日志文件配置详解
location语法:表示uri方式定位
基础语法有三种:
location= pattern{} 精准匹配
location pattern{} 一般配置
location ~pattern{} 正则匹配
Nginx语法
if(条件为: = ~ ~*)、return 、break、rewrite ~*表示忽略大小写
-f 是否为条件、-d是否为目录、-e是否存在
nginx可以对数据进行压缩,对一些图片、html、css、js等文件进行缓存、从而实现动静分离等优化功能。
if($remote_addr=192.168.1.114) {return 401}; 是禁止该物理机ip
if($http_user_agent ~* firefox){rewrite ^.*$/firefox.html ; break;}
查看浏览器类型 如果没有break,则报404错误;
可以在err.log中查看报错信息
cat bhz.com.access.log
Nginx的反向代理
Nginx反向代理proxy 与 负载均衡 upstream
配置反向代理proxy: proxy_pass url地址
配置负载均衡upstream :upstream
官方配置:http://nginx.org/en/docs
注意: 反向代理之后获取客户端ip地址为nginx服务器,这里需要对nginx进行forward,设置真实的ip地址;
#设置客户端真实的ip地址
proxy_set_header X-real-ip $remote_addr;
动静分离:
动态的请求访问tomcat
静态的请求访问nginx
Nginx的反向代理详解
Nginx先拦截请求,再把请求发送给不同的tomcat
location ~\.jsp${
proxy_pass http://192.168.1.171:8080
}
解压tomcat:
/usr/local/apache-tomcat-7.0.29/bin/startup/sh
这是获取到的ip是nginx的ip;
经过反向代理之后,获取到的ip为物理机的ip
Nginx的负载均衡配置详解
myapp负载均衡了两个节点,114和115
没做负载均衡之前:
114:8080/test.jsp 显示test1.jsp
115:8080/test.jsp 显示test2.jsp
做了负载均衡
114:70/test.jsp 第一次显示test1.jsp,第二次显示test2.jsp