目录

1、准备两个tomcat和一个nginx

1.1、tomcat: http://127.0.0.1:8080

1.2、tomcat:http://127.0.0.1:8081

1.3、nginx:http://127.0.0.1

2、反向代理proxy_pass

2.1、反向代理

2.2、反向代理-使用upstream

2.3、反向代理-负载均衡-轮循模式

2.4、反向代理-负载均衡-权重模式

2.4、反向代理-负载均衡-ip_hash方式

3、网关代理fastcgi_pass(php+nginx配合)

3.1、php安装(本人安装的是php-7.3.1)

3.1.1、php下载

3.1.2、php配置

3.2、开启cgi端口

3.3、fastcgi_passnginx配置

3.3.1、新建文件夹:E:\php\www  。然后创建两个文件

3.3.2、创建文件index.php

3.3.3、创建文件index.html

3.3.4、修改nginx配置

3.4、调试页面截图

3.5、解决 nginx+fastcgi+php的并发阻塞问题

3.5.1、启动多个cgi端口(9000,9001端口)

3.5.2、nginx配置

3.5.3、测试

4、不同项目地址转发

4.1、在location层转发

4.2、在location里面判断转发


1、准备两个tomcat和一个nginx

1.1、tomcat: http://127.0.0.1:8080

1.2、tomcat:http://127.0.0.1:8081

1.3、nginx:http://127.0.0.1

2、反向代理proxy_pass

官方文档;http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

2.1、反向代理

介绍:127.0.0.1的80端口转发到127.0.0.1:8080. 。在这里127.0.0.1就类似于服务器的ip地址同理。

 server {listen      80;server_name localhost www.xxx.com; #域名location / {proxy_pass http://127.0.0.1:8080;client_max_body_size 1024m; #请求体大小设置}}

效果展示

2.2、反向代理-使用upstream

  upstream tomcat{    server 127.0.0.1:8081;}server {listen      80;server_name localhost www.xxx.com; #域名location / {proxy_pass http://tomcat;client_max_body_size 1024m; #请求体大小设置}}

2.3、反向代理-负载均衡-轮循模式

轮询方式是默认方式,每个请求按照时间顺序逐一分配到不同的后端服务器进行处理,如有服务器宕机会被自动剔除。

#  负载均衡-轮循模式upstream tomcat{    server 127.0.0.1:8080;server 127.0.0.1:8081;}server {listen      80;server_name localhost www.xxx.com; #域名location / {proxy_pass http://tomcat;client_max_body_size 1024m; #请求体大小设置}}

访问的时候刷新,会发现每次都不一样。为轮循

2.4、反向代理-负载均衡-权重模式

权重方式是利用weight指定的权重比率,与访问率成正比。用于后端服务器性能不均的情况。

#  weigth参数表示权值,权值越高则被分配到的概率越大。测试的时候发现weight=3,刷新的时候8080端口就刷出3次

#  max_fails允许请求失败的次数默认为l

#  fail_timeoutq请求失败后暂停服务的时间

#  backup预留的备份机器

#  down表示当前的server暂时不参与负载均衡。

#  weigth参数表示权值,权值越高则被分配到的概率越大。测试的时候发现weight=3,刷新的时候8080端口就刷出3次
#  max_fails允许请求失败的次数默认为l
#  fail_timeoutq请求失败后暂停服务的时间
#  backup预留的备份机器
#  down表示当前的server暂时不参与负载均衡。
upstream tomcat{    #weigrt权重值(越大访问率大),在fail_timeout时间内检查后端服务器max_fails次,失败则被剔除;server 127.0.0.1:8080 weight=3 fail_timeout=30s max_fails=2;server 127.0.0.1:8081 weight=1 fail_timeout=30s max_fails=2;}server {listen      80;server_name localhost www.xxx.com; #域名location / {proxy_pass http://tomcat;client_max_body_size 1024m; #请求体大小设置}}

2.4、反向代理-负载均衡-ip_hash方式

ip_hash方式是按每个请求访问IP的hash结果分配,可以使每个访客固定访问一个后端服务器,可以解决Session共享的问题。

一般情况下不太建议使用这种方式

# ip_hash;upstream tomcat{  ip_hash;      server 127.0.0.1:8080  fail_timeout=5s ;server 127.0.0.1:8081   fail_timeout=5s  ;}server {listen      80;server_name localhost www.xxx.com; #域名location / {proxy_pass http://tomcat;client_max_body_size 1024m; #请求体大小设置}}

3、网关代理fastcgi_pass(php+nginx配合)

官方文档:    http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass

fastcgi介绍:CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序一般运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。

这种模式一般和php配合一起使用所以我们首先要安装php

3.1、php安装(本人安装的是php-7.3.1)

3.1.1、php下载

进入PHP下载地址http://windows.php.net/download下载最新线程安全版PHP zip压缩包,解压缩后放在想要安装的路径下。注意:下载的PHP VC版本不能比前面安装的vc redist版高。

3.1.2、php配置

进入PHP安装目录,复制一份php.ini-development改名为php.ini放到安装路径下,打开找到"extension_dir",去掉注释符,将值改为"PHP安装路径\ext"。我当前的是:extension_dir = "E:\php\php-7.3.1\ext"

如图:

3.2、开启cgi端口

//  命令,在控制台执行
E:\php\php-7.3.1\php-cgi.exe -b 127.0.0.1:9000  -c E:\php\php-7.3.1\php.ini

如图:

3.3、fastcgi_passnginx配置

3.3.1、新建文件夹:E:\php\www  。然后创建两个文件

3.3.2、创建文件index.php

<?php
echo '<strong>Hello, this is index.php!</strong>';
?>

3.3.3、创建文件index.html

this is  index html

3.3.4、修改nginx配置

server {listen       7000;server_name  localhost;location / {## 解决跨域的代码add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;#创建的包含 index.html和 index.php的文件夹root   E:/php/www;index  index.html index.htm index.php;try_files $uri $uri/ /index.php?$query_string;}# 判断后缀为php的地址location ~ \.php$ {#创建的包含 index.html和 index.php的文件夹root           E:/php/www;fastcgi_pass   127.0.0.1:9000; #端口是上面开通的cgi端口fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}error_page   500 502 503 504  /50x.html; }

重启nginx:nginx.exe -s reload

3.4、调试页面截图

访问:http://127.0.0.1:7000/

访问:http://127.0.0.1:7000/index.php

3.5、解决 nginx+fastcgi+php的并发阻塞问题

3.5.1、启动多个cgi端口(9000,9001端口)

命令:E:\php\php-7.3.1\php-cgi.exe -b 127.0.0.1:9000  -c E:\php\php-7.3.1\php.ini

3.5.2、nginx配置

然后重启nginx:E:\php\nginx-1.18.0>  nginx.exe -s reload

 upstream fastcgi_proxy{server 127.0.0.1:9000;server 127.0.0.1:9001; }server {listen       7000;server_name  localhost;location / {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;root   E:/php/www;index  index.html index.htm index.php;try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {root           E:/php/www;fastcgi_pass   fastcgi_proxy;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;client_max_body_size    10m;}error_page   500 502 503 504  /50x.html; }

3.5.3、测试

经过测试发现,9000端口和9001端口只要有一个还在启动,http://127.0.0.1:7000/index.php 这个地址就可以访问

如由于需要相关软件和资料,欢迎留言

4、不同项目地址转发

4.1、在location层转发

 server {listen 8088;server_name localhost;location ^~ /crm {proxy_pass http://127.0.0.1:8080/crm;}location ^~ /resourcesSystem {proxy_pass http://127.0.0.1:8080/resourcesSystem;}location ^~ /sw_agency {proxy_pass http://127.0.0.1:8080/sw_agency;}}

4.2、在location里面判断转发

 server {listen 8088;server_name localhost;         location / {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";root html;index index.html index.htm;if ($request_uri ~* "^\/springboot"){# add_header Access-Control-Allow-Origin *;# add_header Access-Control-Allow-Headers X-Requested-With,content-type,cert,t;# add_header Access-Control-Allow-Methods GET,POST,OPTIONS;            proxy_pass http://127.0.0.1:8080;break;}            }}

proxy_pass和fastcgi_pass区别,反向代理,负载均衡、nginx+fastcgi+php的并发阻塞问题相关推荐

  1. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  2. Nginx反向代理 负载均衡sky

    Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...

  3. Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链

    文章目录 1. Nginx简介 1.1 Nginx背景 1.2 Nginx的优点 1.3 Nginx的功能特性及常用功能 2.Nginx安装 2.1 下载上传解压 1.2 安装 3.nginx核心概念 ...

  4. nginx 反向代理负载均衡 tomcat集群应用

    nginx 反向代理负载均衡 tomcat集群应用 环境介绍: 系统:centos5.8_64 192.168.0.201:nginx服务器 192.168.0.202:tomcat服务器 192.1 ...

  5. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  6. 编译安装nginx并实现反向代理负载均衡和缓存功能

    一.编译安装nginx 1.下载 [root@ns1 ~]# wget http://nginx.org/download/nginx-1.10.0.tar.gz 2.解压 [root@ns1 ~]# ...

  7. Nginx总结(安装,使用,正向代理,反向代理,负载均衡)

    目录 Nginx介绍与安装 一.Nginx简介 1.什么是ngnix 2.nginx应用场景 二.Nginx安装与启动 Nginx静态网站部署 一.静态⽹站的部署 二.配置虚拟主机 1.端⼝绑定 2. ...

  8. nginx反向代理模块配置详解_Nginx(三):反向代理负载均衡集群配置详解

    概述: 本篇主要总结Nginx实现反向代理和负载均衡功能相关模块的配置说明.主要使用到的模块如下:ngx_http_proxy_moduleNginx实现反向代理功能 ngx_http_upstrea ...

  9. Nginx 反向代理+负载均衡

    一.Nginx 的引入背景 ● 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户. 用户少, ...

最新文章

  1. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...
  2. 在Ubuntu 14.04 64bit上安装字体管理器font-manager
  3. 一篇文章把Self-Attention与Transformer讲明白
  4. mysql chroot_在chroot环境下将MySQL日志输出到syslog
  5. zigbee 常规配置
  6. GPU Gems1 - 8 衍射的模拟
  7. 叠数的加法与字符串 RUNOOB python练习题 18
  8. 二十三、中断(控制计算机硬件,避免使用0000:0000-0000:03FF内存地址)
  9. 梯度下降python编程实现_【机器学习】线性回归——单变量梯度下降的实现(Python版)...
  10. Python 测试(一)—— doctest
  11. 学习Java8这一篇就够了
  12. Visual Studio问题汇总
  13. 学计算机选择师范类好吗,师范教育类专业和计算机类专业,两者相比,哪个更适合自考生报读...
  14. Antd表单项根据后端返回字段显示错误的校验提示语
  15. apk开发教程!了解Android架构组件后,构建APP超简单!先收藏了
  16. AMD 安装 Manjaro KDE 驱动安装后续及BackLight:ACPI故障解决
  17. 如何安装 IntelliJ IDEA 最新版本——详细教程
  18. 计算机属性无法查看无反应,Win7旗舰版右键查看计算机属性未反应的处理方法...
  19. FreeBSD 下载地址
  20. SAP如何判断物料主数据中哪些视图有维护,哪些没有维护?

热门文章

  1. C++字符串变量的运算 | 使用+输出两个字符串变量
  2. 索引表和ES的一点点思考
  3. C#实现离散数学中Kn图一笔画模拟
  4. C语言 将一串数字,一个一个输出
  5. React基本使用、jsx语法介绍
  6. [答疑]审批报销申请的用例规约
  7. 手机游戏加密那点事儿_2d脚本加密
  8. 推荐!国外程序员整理的机器学习资源大全
  9. matlab算术运算
  10. 产研流程怎么实现降本增效?