ngix是什么
Nginx是一款轻量级、高性能的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
正向代理:
客户端访问服务器时,统一通过一个代理服务器把请求转发给服务器,此时代理的是客户端,即客户端时透明的,服务器不知道请求来自哪一个客户端。正向代理模式屏蔽或者隐藏了真实客户端信息。
反向代理:
此时请求的来源也就是客户端是明确的,客户端将请求发送给反向代理服务器,反向代理服务器去访问真实的服务器,但是请求具体由哪台服务器处理的并不明确了,此时代理的是服务端。
反向代理的优势:
- 保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。
- 负载均衡,通过反向代理服务器来优化网站的负载。当我们有多个服务器时,ngix可以根据负载均衡的策略转发给不同的服务器,保证服务的可用。
- 动静分离,原先一台服务器,动态资源(如:jsp,servlet)和静态资源(如:html,js)都在这台服务器上,导致服务器压力大。为了减小服务器压力,可以将动态和静态资源放到不同服务器上。
ngix的安装及使用
下载地址:http://nginx.org/en/download.html ,以下内容转载至:Nginx详解_星空1024的博客-CSDN博客
Nginx常用命令
使用nginx操作命令前提条件:必须进入nginx的安装目录下的sbin目录
(cd /usr/local/nginx/sbin)
1查看nginx版本号命令
./nginx -v
2 启动nginx命令
./nginx
3关闭nginx命令
./nginx -s stop
4 重新加载nginx
即修改了nginx的配置文件,默认不会马上生效,可以重启让它生效,但是现在我不想重启,让配置文件重新加载就会生效(即不要重启服务器也会生效)
./nginx -s reload
Nginx的配置文件
Nginx配置文件由三部分组成:
第一部分:全局块
从配置文件开始,到events之前的都属于全局块
详细说明:
第二部分:events块
第三部分:http块
http全局块
http全局块配置的指令包括文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等
server块
Server块中又很多的注释,那些是可以参考的例子
Nginx配置实例1——反向代理
准备工作
流程图
在nginx的配置中文件中配置vim /usr/local/nginx/conf/nginx.conf
编写好后重新加载nginx
Window中C:\Windows\System32\drivers\etc本地域名解析
测试访问的效果
Nginx配置实例2——反向代理
实现效果:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中
Nginx监听端口为9001
访问http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8081
准备工作
(2)中是在端口为8080的tomcat的webapps文件下下创建edu文件夹,文件夹下创建a.html(里面内容略)。8081的tomcat的webapps文件下下创建vod文件夹,文件夹下创建a.html(里面内容略)。
配置完成后,防火墙应该开放相应的端口9001 8080 8081
然后重新加载nginx
访问结果
Nginx正则配置
ngix负载均衡
Nginx 实现负载均衡用到了 proxy_pass 代理模块核心配置, 将客户端请求代理转发至一组 upstream 虚拟服务池。
负载均衡和反向代理的区别是,反向代理由代理服务器指定特定的服务器去请求资源,而负载均衡中的代理服务器将请求转发给虚拟服务池,具体由那个服务器处理根据相应的算法来定。
案例:转载至:超详细的Nginx负载均衡+高可用配置(亲测附图)_nginx负载均衡压力测试效果图_IT_10-的博客-CSDN博客
配置负载均衡例1
在A和B两台主机上做相同的如下配置
现在分别访问三次A主机和B主机都会出现的情况是:I am -.-.-.244 server连续出现两次,第三次是I am -.-.-.17 server,此后的刷新都是按照该规律
Nginx配置实例—负载均衡
实现效果:
(1) 浏览器地址栏输入地址:http://服务器ip/edu/a.html,负载均衡效果,请求平均分担到8080,8081端口中。
Nginx配置—动静分离
动态请求:比如我数据要从数据库获取,这个可以理解为动态请求
准备工作,cd / 然后mkdir data 再data文件夹下创建www(用于存放静态页面),image(存放图片的文件夹)
修改nginx的配置文件,然后重新加载配置文件(root data访问的image或访问www的时候他会去访问data目录下的。。。)
访问就列出了image文件夹中的内容,因为上面配置autoindex on的作用
访问图片正常
从上面访问静态资源可以看到不是从请求tomcat,而是直接请求静态资源,实现了nginx静态访问