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的欢迎界面
cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx
Nginx配置文件说明
Nginx的虚拟主机配置
#虚拟主机配置
server{
listen:1234; #设置nginx的端口号
server_name bhz.com; #设置服务器别名
location /{
root bhz.com; #这是nginx的根目录
index index.html; #设置根目录中的界面
}
}
负载均衡策略
1、使用硬件复杂均衡策略实现,如使用F5、Array等负载均衡器
2、使用软件进行负载均衡。
如使用阿里云服务器负载均衡SLB
如使用Keepalived+Nginx
其他软件负载均衡如LVS(Linux Virtual Server)、haproxy等技术
Nginx优点
Nginx是一个很强大的高性能web和反向代理服务器。能够
keepalive_timeout 65;
#gzip on;
server{
listen 80;
server_name localhost;
#charset utf-8;
#access_log logs/host.access.log main;
location /{
root html;
index index.html index.htm
}
error_page 500 502 503 504 /50x.html;
location =/50x.html{
root html;
}
}
负载均衡服务器;在高并发的情况下,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;
location /{
#设置客户端真实ip地址
#proxy_set_header X-real-ip $remote_addr;
#负载均衡反向代理
#proxy_pass http://myapp
#返回根路径地址(相对路径:相对于/usr/local/nginx/)
root html;
默认访问文件
index index.html index.htm
}
#配置反向代理tomcat服务器:拦截.jsp结尾的请求转向到tomcat
#location ~\.jsp${
#proxy_pass http://192.168.1.171:8080
}
经过反向代理之后,获取到的ip为物理机的ip
Nginx的负载均衡配置详解
#设定负载均衡的服务器列表
#upstream myproject{
#weight参数表示权值,权值越高被分配到的概率越大
#max_fails 当有#max_files个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
#fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发送已检查标记为不可用的服务器
}
#webapp
#upstream myapp{
server 192.168.1.114:8000 weight=1 max_files=2 fail_timeout=30s
server 192.168.1.115:8000 weight=1 max_files=2 fail_timeout=30s
}
myapp负载均衡了两个节点,114和115
#scp /usr/local/apache-tomcat-7.0.29/webapps/Root/test.jsp 192.168.1.115:/usr/local/apache-tomcat-7.0.29/webapps/Root/
##
##
/usr/local/apache-tomcat-7.0.29/bin/startup.sh
没做负载均衡之前:
114:8080/test.jsp 显示test1.jsp
115:8080/test.jsp 显示test2.jsp
做了负载均衡
114:70/test.jsp 第一次显示test1.jsp,第二次显示test2.jsp
标签:nginx,初步,Nginx,html,jsp,usr,local,搭建 From: https://blog.51cto.com/u_15890333/5884592