反向代理适用于很多场合,负载均衡是最普遍的用法。

nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。

nginx 反向代理官方文档: NGINX REVERSE PROXY

当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx在80端口监听所有请求,并依据转发规则(比较常见的是以 URI 来转发)转发到对应的web服务器上。

一例
本人亲自实践,经验总结如下:
user www www;worker_processes auto;error_log  /home/wwwlogs/nginx_error.log  crit;pid        /usr/local/nginx/logs/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;events{use epoll;worker_connections 51200;multi_accept on;}http{include       mime.types;default_type  application/octet-stream;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 50m;sendfile   on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 256k;gzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;gzip_vary on;gzip_proxied   expired no-cache no-store private auth;gzip_disable   "MSIE [1-6]\.";#limit_conn_zone $binary_remote_addr zone=perip:10m;##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.server_tokens off;#log formatlog_format  access  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';access_log off;upstream web_pools{server 127.0.0.1:8080;}#HTTP服务器server {#监听80端口,80端口是知名端口号,用于HTTP协议listen       80;#定义使用www.xx.com访问#server_name  www.helloworld.com;server_name  http://47.1**.1**.195; # 项目访问的域名或者端口#反向代理的路径(和upstream绑定),location 后面设置映射的路径location /hh {proxy_pass http://47.1**.1**.195:8090/hh/check;#proxy_pass http://47.1**.1**.195:8090/hh/index;#proxy_pass http://www.baidu.com;}location /aaaaaa/ {   # /jm-kefu-weixin/  项目的二级域名 本文中即项目名proxy_pass http://47.1**.1**.195:9090/bbbbbb/;#proxy_pass http://47.1**.1**.195:8090/aaaaaa/index;#proxy_pass http://www.baidu.com;}}include vhost/*.conf;
include /usr/local/nginx/conf/conf.d/*.conf;
}
本例中发起请求的url-->  http://47.1**.1**.195/aaaaaa/index
在nginx中会通过ip,端口,二级域名匹配到要转发的路径
http://47.1**.1**.195/aaaaaa/index ----->替换为  http://47.1**.1**.195:9090/bbbbbb/index ;
对请求index前的路径进行了替换以达到转发的目的
二例
例如有 webmail , webcom 以及 webdefault 三个服务器分别运行在 portmail , portcom , portdefault 端口,要实现从80端口同时访问这三个web服务器,则可以在80端口运行 nginx, 然后将 /mail 下的请求转发到 webmail 服务器, 将 /com下的请求转发到 webcom 服务器, 将其他所有请求转发到 webdefault 服务器。假设服务器域名为example.com,则对应的 nginx http配置如下:
http {server {server_name example.com;location /mail/ {proxy_pass http://example.com:protmail/;}location /com/ {proxy_pass http://example.com:portcom/main/;}location / {proxy_pass http://example.com:portdefault;}}
}以上的配置会按以下规则转发请求( GET 和 POST 请求都会转发):
将 http://example.com/mail/ 下的请求转发到 http://example.com:portmail/
将 http://example.com/com/ 下的请求转发到 http://example.com:portcom/main/
将其它所有请求转发到 http://example.com:portdefault/
以上配置的转发示例:http://example.com/mail/index.html -> http://example.com:portmail/index.html
http://example.com/com/index.html -> http://example.com:portcom/main/index.html
http://example.com/mail/static/a.jpg -> http://example.com:portmail/static/a.jpg
http://example.com/com/static/b.css -> http://example.com:portcom/main/static/b.css
http://example.com/other/index.htm -> http://example.com:portdefault/other/index.htm
需要注意的是,在以上的配置中,webdefault 的代理服务器设置是没有指定URI的,而 webmail 和 webcom 的代理服务器设置是指定了URI的(分别为 / 和 /main/)。
如果代理服务器地址中是带有URI的,此URI会替换掉 location 所匹配的URI部分。
而如果代理服务器地址中是不带有URI的,则会用完整的请求URL来转发到代理服务器。官方文档描述:If the URI is specified along with the address, it replaces the part of the request URI that matches the location parameter.
If the address is specified without a URI, or it is not possible to determine the part of URI to be replaced, the full request URI is passed (possibly, modified).

nginx反向代理(请求转发-URL匹配规则)相关推荐

  1. nginx请求转发被拒绝_nginx反向代理(请求转发-URL匹配规则)

    反向代理适用于很多场合,负载均衡是最普遍的用法. nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理. 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些 ...

  2. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  3. 记一次nginx反向代理做转发遇到的坑

    今天在发布项目时遇到了一个大坑,在这记录下来,如果以后有人遇到可以参考解决一下,避免绕弯路耽误时间 简单介绍整个项目配置:用nginx(nginx版本号为1.12.2)做https转发,转发到另一个服 ...

  4. Nginx 反向代理配置

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/qq_39794062/article/ details/118074409 一.准备工作 Linux系统安装Tomcat,使用 ...

  5. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...

    实验目标: 1.反向代理服务器将用户请求负载均衡到后端tomcat节点: 2.配置基于nginx的负载均衡,实现会话绑定: 3.配置基于mod_jk的负载均衡,实现会话绑定: 4.基于mod_prox ...

  6. Nginx反向代理——简单体验Nginx反向代理功能

    一.引言 从Nginx入门学习开始.到现在所讲的Nginx反向代理.我们的Nginx学习已经进入白热化状态,前面所学只是铺垫,真正在公司的业务场景中Nginx绝大数用来反向代理+负载均衡所用.相信大家 ...

  7. Web集群案例实战 -- Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战

    Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战 前言 一.需求背景 前言 本环境是基于 Centos 7.8 系统构建Nginx学习环境 具体构建,请参考 Nginx-1.18 ...

  8. nginx请求转发被拒绝_解决nginx反向代理proxy不能转发header报头

    做了一个德国高防plesk卖虚拟主机,奈何地理位置太过于遥远,控制台使用上速度难以接受.用户站点可以使用cloudflare等等的加速手段,控制台能否也这么干呢?理论是完全可以的,那么时间上手看吧.安 ...

  9. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解...

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

最新文章

  1. linux进程间通信:POSIX信号量
  2. 实战 | 如何将YOLOv4部署到无人机?
  3. GDataXML的一些简单示例。
  4. 微盟“删库”程序员被判6年,供述无力偿还网贷,酒后感觉生活不如意
  5. Python中Numpy(2,numpy的基本操作(级联,维度转换,切分,副本))
  6. 【Jvm】jvm -XX 参数 VM 调优参数
  7. ATL--创建简单的ATL之dll工程,给接口添加属性(实际上就是一个函数对)
  8. Spring-3.2.4 + Quartz-2.2.0集成实例
  9. 解释Spring中IOC, DI, AOP
  10. 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群
  11. Java中常用的url签名防篡改方法
  12. python-opencv 角点检测的 FAST 算法
  13. linux查询hba卡驱动版本,Linux下查看HBA卡的驱动版本和WWPN
  14. RD client远程桌面
  15. 从董明珠称格力将会接入鸿蒙系统,是否可以看出手机圈的不堪?
  16. windows下安装openssl工具及生成pfx文件
  17. netbeans莫明其妙的报错
  18. 有关Botton的用法(一)
  19. 「课程」宏观经济学-北京大学光华管理学院
  20. 突发丨BSV暴涨200% 澳本聪又搞事情了!

热门文章

  1. 黑群晖docker清理缓存_黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透
  2. 2021双十一有什么降噪耳机值得买?双十一值得入手的降噪耳机推荐
  3. 由于连接方在一段时间后没有正确答复或连接的主机没有反应_长假后回到实验室要注意这些!!...
  4. (SCI论文文献阅读工具)知云文献翻译下载安装与使用
  5. julia简易教程——安装Julia+jupyter notebooks
  6. onlyoffice开发java_如何集成Alfresco与ONLYOFFICE在线编辑器在Ubuntu 14.04
  7. 新浪微博如何自定义来源尾巴
  8. 互联网图像中的像素级语义识别
  9. 关闭Chrome 安全策略
  10. P2709 小B的询问 莫队入门