目录先谈理解:1.Nginx基本概念2.常用命令以及配置文件3.nginx配置实例之反向代理4.nginx配置实例之负载均衡5.nginx配置实例之动静分离6.nginx配置高可用集
1.反向代理:是nginx代理所有的服务器。而正向代理是vpn代理客户端!!
反向代理是配置 proxy_pass 可以只配置一个地址如 :
proxy_pass Http://127.0.0.1:8081;
也可以配置多个
2.那就是负载均衡
定义负载均衡服务器:
upstream myserver {
server 192.168.12.127:8080;
server 192.168.12.127:8081;
}
修改proxy_pass
proxy_pass http://myserver;
这样就实现了 反向代理 (proxy_pass)+ 负载均衡(upstream)
Nginx的概念
Win下nginx的常用命令
nginx配置文件
1. 实现效果:监听9000端口。根据不同的路径跳转到不同的端口服务中
2. 准备工作
准备好两个服务器:8080和8081
在8080Tomcat的WEBapps里面添加一个shisan01文件夹,编写一个shisan.html。内容自己定就好,同理8081也是一样,添加一个shisan02文件夹,编写一个shisan.html。跑完之后访问不同的服务测试
3. 前往nginx配置文件配置
进入配置文件,如下配置
server {
listen 9000;
server_name 192.168.12.127;
location ~/shisan01/ {
proxy_pass http://127.0.0.1:8080;
}
location ~/shisan02/ {
proxy_pass http://127.0.0.1:8081;
}
}
PS:注意要记得开发端口号:8080 8081 9000
PS:location的指令可以百度了解一下
1. 准备工作
同样是两个tomcat(8080和8081)服务器,当然要是你真有两台服务器最好!哈哈哈。条件问题还是模拟。
在两个服务器里面的webapps里面创建一个shisan文件夹,在shisan文件夹里创建一个shisan.html,添加内容自己定就好
2. 在nginx配置文件中修改配置
在http块中配置
upstream myserver {
server 192.168.12.127:8080;
server 192.168.12.127:8081;
}
server {
listen 80;
server_name 192.168.12.127;
location / {
proxy_pass http://myserver;
root html;
index index.html index.htm;
}
}
3. nginx分配服务器的策略
轮询:默认策略;每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream myserver {
server 192.168.12.127:8080 weight=10;
server 192.168.12.127:8081 weight=5;
}
IP绑定 ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
upstream myserver {
ip_hash;
server 192.168.12.127:8080;
server 192.168.12.127:8081;
}
fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server 192.168.12.127:8080;
server 192.168.12.127:8081;
fair;
}
url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
1. 准备工作
弄好一个动态资源一个静态资源:比如
2. 配置nginx文件
server {
listen 80;
server_name 192.168.12.127;
location /html/ {
root /shisan/;
index index.html index.htm;
}
location /image/ {
root /shisan/;
autoindex on; // 列出文件的目录,可以自行观看对比就知道
}
}
1. 因为我这里环境不允许,可以参考这个文章
语法规则: location [=||*|^~] /uri/ {… }
首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
符号 | 含义 |
---|---|
= | = 开头表示精确匹配 |
^~ | ^~开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格) |
~ | ~ 开头表示区分大小写的正则匹配 |
~* | ~ 开头表示不区分大小写的正则匹配* |
!和!* | !和!*分别为区分大小写不匹配及不区分大小写不匹配的正则 |
/ | 用户所使用的代理(一般为浏览器) |
$http_x_forwarded_for | 可以记录客户端IP,通过代理服务器来记录客户端的ip地址 |
$http_referer | 可以记录用户是从哪个链接访问过来的 |
比这些 location 规则来选择一个 location,对比的顺序可以总结为:
如下是一些 location 配置的例子,用来详细描述上面所说的处理顺序,你也可以按照具体实际情况来修改这些例子.
location = / {
# 只处理请求 /.
}
location /data/ {
# 所有以 /data/ 匹配,但是还会继续搜索.
# 如果没有其他 location 匹配上,就用这个处理请求.
}
location ^~ /img/ {
# 所有以 /img/ 开头的请求并且会停止搜索.
}
location ~* .(png|gif|ico|jpg|jpeg)$ {
# 以png, gif, ico, jpg ,jpeg结尾的请求.
# 如果请求是到 /img/ 路径的话 还是会被上面?的 location 处理
}
到此这篇关于Nginx如何配置根据路径转发的文章就介绍到这了,更多相关Nginx根据路径转发内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Nginx如何配置根据路径转发详解
本文链接: https://www.lsjlt.com/news/164707.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-11
2024-05-11
2024-05-10
2024-05-07
2024-04-30
2024-04-30
2024-04-30
2024-04-29
2024-04-29
2024-04-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0