如果我的博客能够帮到大家能够点个赞,关注一下,以后还会更新更过JavaWeb的高级技术,大家的支持就是我继续更新的动力。谢谢。
前期准备:Centos 7
nginx-1.6.2: wget http://nginx.org/download/nginx-1.6.2.tar.gz
- 解压Nginx 到/use/local/nginx
tar -xvf nginx-1.6.2.tar.gz /usr/loca/nginx
- 下载依赖的库文件
yum install pcre
yum install pcre-devel
yum install zlib
yum install zlib-devel
- 安装nginx
cd /usr/local/nginx-1.6.2 && ./configure --prefix=/usr/local/nginx
- 编译安装( cd 到解压好的nginx-1.6.2,这个目录下安装编译)
make && make install
- 启动Nginx
执行完5步骤后,cd 到/usr/local/nginx目录下。执行ls,可以看到四个目录
conf----配置文件 html----网页文件 logs-----日志文件 sbin------主要二进制程序
启动命令: /usr/local/ngnix/sbin/nginx (无参数) 启动 (-s stop)关闭 (-s reload)重启
- 查看
查看是否成功 ps -ef | grep nginx (如果能看到两个相邻ID的进程,说明启动成功)
失败的可能 80端口被占用了。 netstat -ano | grep 80
如果成功的话,浏览器访问能看到欢迎页面:(http://服务器的IP:80)
nginx的结构目录(四个conf、html、logs、sbin,其他的都是运行后生成的或者自己添加的)
Nginx的作用都是靠着conf/nginx.conf 配置文件发挥的作用。只要能读懂它,会简单的编写,基本算是入门级别了。
- 常用练习
1)请求过滤转发等(上面的配置,它的效果展示)
firefox的请求结果: (被转发到了rewrite.html了,当然上面那个html可以写成连接,这样就跳到了对应的链接里了)
chrome的请求结果:(没被转发走,默认的Nginx欢迎页面)
2)日志的区分、切分
./sbin/nginx -s reload 重启Nginx后,分别生成两个对应的日志文件
分别访问两个请求数次,然后去查看日志文件
不同端口的请求,会被写入到不同的日志文件中了。
日志的切分(即每天的请求记录生成一个日志文件;如果网站访问量比较大,Nginx的日志文件一天的记录就会达到MB级别;这样按时间切分便于查看和监控)
日志切分需要使用Linux的定时任务命令crontab。脚本的基本命令就是1、关闭Nginx;2、将日志文件移动到某一目录并改名;
- 重启nginx
/sbin/nginx -s stop
mv 日志xx.log 数据目录/20180920-nginx.log
/sbin/nginx
-----------------------------------------------------------------------—-------Nginx 知识----------------------------------------------------------------------------------
nginx:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
特点:
反向代理 负载均衡 动静分离...
反向代理 :
先来了解正向代理:需要我们用户,手动的设置代理服务器的ip和端口号
反向代理:代理服务器的,用户不需要设置.
负载均衡:
原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,
多台服务器共同完成工作任务,从而提高了数据的吞吐量。
动静分离:
将静态的资源放到反向服务器,节省用户的访问时间.
用nginx在window上搭建一个集群
1.在g盘新建两个目录 tomcat1 tomcat2
2.修改tomcat2的端口 在tomcat1的端口上+10
3.解压nginx
修改nginx的 nginx.conf文件
在locatioin / 下添加了反向代理
proxy_pass 代理服务器
这是只是代理一台服务器
4.代理集群
需要在http节点上添加一个
upstream servlet_yujia{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
修改location /下的反向代理
proxy_pass http://servlet_yujia
5.session共享问题
解决方式1:只能在window下好使
web服务器解决(广播机制)
注意:tomcat下性能低
修改两个地方:
1.修改tomcat的server.xml 支持共享
将引擎标签下的
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
注释去掉
2.修改项目的配置文件 web.xml中添加一个节点
解决方式2:
可以将session的id放入redis中
解决方式3:
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux
在nginx的配置文件中
upstream中添加 ip_hash;