nginx反向代理(请求转发-URL匹配规则)
反向代理适用于很多场合,负载均衡是最普遍的用法。
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匹配规则)相关推荐
- nginx请求转发被拒绝_nginx反向代理(请求转发-URL匹配规则)
反向代理适用于很多场合,负载均衡是最普遍的用法. nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理. 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些 ...
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...
- 记一次nginx反向代理做转发遇到的坑
今天在发布项目时遇到了一个大坑,在这记录下来,如果以后有人遇到可以参考解决一下,避免绕弯路耽误时间 简单介绍整个项目配置:用nginx(nginx版本号为1.12.2)做https转发,转发到另一个服 ...
- Nginx 反向代理配置
点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/qq_39794062/article/ details/118074409 一.准备工作 Linux系统安装Tomcat,使用 ...
- Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...
实验目标: 1.反向代理服务器将用户请求负载均衡到后端tomcat节点: 2.配置基于nginx的负载均衡,实现会话绑定: 3.配置基于mod_jk的负载均衡,实现会话绑定: 4.基于mod_prox ...
- Nginx反向代理——简单体验Nginx反向代理功能
一.引言 从Nginx入门学习开始.到现在所讲的Nginx反向代理.我们的Nginx学习已经进入白热化状态,前面所学只是铺垫,真正在公司的业务场景中Nginx绝大数用来反向代理+负载均衡所用.相信大家 ...
- Web集群案例实战 -- Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战
Nginx 反向代理根据URL中的目录地址实现代理转发 -- 案例实战 前言 一.需求背景 前言 本环境是基于 Centos 7.8 系统构建Nginx学习环境 具体构建,请参考 Nginx-1.18 ...
- nginx请求转发被拒绝_解决nginx反向代理proxy不能转发header报头
做了一个德国高防plesk卖虚拟主机,奈何地理位置太过于遥远,控制台使用上速度难以接受.用户站点可以使用cloudflare等等的加速手段,控制台能否也这么干呢?理论是完全可以的,那么时间上手看吧.安 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解...
大纲 一.前言 二.环境准备 三.安装与配置Nginx (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡 (负载均衡算法:nginx负载算法 up ...
最新文章
- linux进程间通信:POSIX信号量
- 实战 | 如何将YOLOv4部署到无人机?
- GDataXML的一些简单示例。
- 微盟“删库”程序员被判6年,供述无力偿还网贷,酒后感觉生活不如意
- Python中Numpy(2,numpy的基本操作(级联,维度转换,切分,副本))
- 【Jvm】jvm -XX 参数 VM 调优参数
- ATL--创建简单的ATL之dll工程,给接口添加属性(实际上就是一个函数对)
- Spring-3.2.4 + Quartz-2.2.0集成实例
- 解释Spring中IOC, DI, AOP
- 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群
- Java中常用的url签名防篡改方法
- python-opencv 角点检测的 FAST 算法
- linux查询hba卡驱动版本,Linux下查看HBA卡的驱动版本和WWPN
- RD client远程桌面
- 从董明珠称格力将会接入鸿蒙系统,是否可以看出手机圈的不堪?
- windows下安装openssl工具及生成pfx文件
- netbeans莫明其妙的报错
- 有关Botton的用法(一)
- 「课程」宏观经济学-北京大学光华管理学院
- 突发丨BSV暴涨200% 澳本聪又搞事情了!
热门文章
- 黑群晖docker清理缓存_黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透
- 2021双十一有什么降噪耳机值得买?双十一值得入手的降噪耳机推荐
- 由于连接方在一段时间后没有正确答复或连接的主机没有反应_长假后回到实验室要注意这些!!...
- (SCI论文文献阅读工具)知云文献翻译下载安装与使用
- julia简易教程——安装Julia+jupyter notebooks
- onlyoffice开发java_如何集成Alfresco与ONLYOFFICE在线编辑器在Ubuntu 14.04
- 新浪微博如何自定义来源尾巴
- 互联网图像中的像素级语义识别
- 关闭Chrome 安全策略
- P2709 小B的询问 莫队入门