一、在验证功能之前需要的前提工作
1. 下载nginx以及依赖:yum -y install gcc zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre-devel
2. 安装nginx:进入nginx安装目录执行 ./configure 执行完后,在该目录下接着执行 make && make install
3. 上面操作执行完之后,在 /usr/local/目录下会生成nginx目录
4. nginx的配置文件是 /usr/local/nginx/conf/nginx.conf文件
5. nginx的命令:进入 /usr/local/nginx/sbin 目录,./nginx 启动;./nginx -v 查看版本;./nginx -s stop 关闭;./nginx -s reload 重启
二、反向代理(服务器)
1. 概念:正向代理和反向代理的区别
1)正向代理:假如我想访问某个网站,我是明确知道我想访问的地址的,就是某个网站地址,然后我需要在浏览器配置上代理的服务器地址,然后访问时我输入的是某个网站地址
2)反向代理:我不知道我要访问的地址,我访问的是一个代理地址,由代理来把请求转发给真正的服务器地址。比如现在有一个反向代理的地址 www.123.com 访问它就把请求转发到了要访问的某个服务器
2. 反向代理例子,我想达到的效果:输入nginx服务器的地址然后进入tomcat界面
1)部署tomcat1,验证(外网:152.136.23.174,内网:172.16.0.52)
2)nginx部署的机器(外网:152.136.11.188,内网:172.16.0.62)
3)修改nginx的配置文件 vim /usr/local/nginx/conf/nginx.conf,在location中加入 proxy_pass http://172.16.0.52:8080;
4)查看效果(不做反向代理的话,输入 http://152.136.11.188 进入的是nginx的欢迎界面)
5)可能存在的问题,我这里防火墙是关闭的:查看端口是否开放,firewall-cmd --list-all。开放端口:firewall-cmd --add-port=8080/tcp --permanent。重启防火墙:firewall-cmd --reload
6)nginx可能存在的问题:403 forbiden。看一下nginx的配置文件,有可能配置文件默认的就返回的 403,需要手动改一下
三、反向代理(跨域)
1. 我想达到的效果:根据不同的请求地址跳到不同的tomcat中
2. 部署另外一台tomcat2服务器,服务器信息:外网:152.136.23.174,内网:172.16.0.52 (和tomcat1是一台机器),端口改为8081
3. 创建一个html:<h1>8080!!<\h1>,在tomcat1 webapps的目录下新建edu目录,将html放入该目录
4. 创建一个html:<h1>8081!!<\h1>,在tomcat2 webapps的目录下新建vod目录,讲html放入该目录
5. 修改nginx 配置文件
6. 重启nginx之后,查看效果
7. nginx的配置文件中location后面的波浪线是匹配正则表达式的意思, 严格区分大小写。 location后面如果跟 ~* 也是匹配正则表达式的意思, 不区分大小写
四、负载均衡
1. 想达到的效果:输入http://152.136.11.188/edu/a.html时, 让请求平均的分配到8080 和 8081两台服务器上
2. 在反向代理中已经在tomcat1中新建了edu目录,同样在tomcat2 webapps的目录下也新建edu目录,将8081的html放入该目录下
3. 修改nginx的配置如下:
4. 重启nginx,通过 http://152.136.11.188:9005/edu/a.html 查看效果
5. 分配的权重(大致写一下):1、轮询(默认);2、weight权重;3、ip_hash;4、fair
五、动静分离(搭建一个可以查看和下载文档的小型服务器)
1. 实现的效果:txt|doc|pdf|zip|docx 文档格式的文本可下载,其他格式的文本可查看
2. 在data/downloads目录下放入各种文件
3. 修改nginx配置 :
4. 重启nginx后,查看效果
1)首先查看jpg不能下载,但是可以查看
2)docx文件可以下载,点击google.docx之后浏览器下方开始下载