nginx反向代理:

方案

  使用4台RHEL7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.4.5和192.168.2.5,两台Web服务器IP地址分别为192.168.2.100和192.168.2.200。客户端测试主机IP地址为192.168.4.100。如图所示。

web1和web2简单的安装httpd开启服务作为后端的Web服务器,两台机需要关闭防火墙(httpd安装过程略)

nginx服务器修改配置文件,添加服务器池,实现反向代理(nginx安装过程略)

1)修改/usr/local/nginx/conf/nginx.conf配置文件

1)修改/usr/local/nginx/conf/nginx.conf配置文件

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. http {
  4. .. ..
  5. #使用upstream定义后端服务器集群,集群名称任意(如webserver)
  6. #使用server定义集群中的具体服务器和端口
  7. upstream webserver {
  8. server 192.168.2.100:80;  #web1服务器地址
  9. server 192.168.2.200:80;  #web2服务器地址
  10. }
  11. .. ..
  12. server {
  13. listen        80;
  14. server_name localhost;
  15. location / {
  16. #通过proxy_pass将用户的请求转发给webserver集群
  17. proxy_pass http://webserver;
  18. }
  19. }

重启nginx,client(192.168.4.100)访问nginx代理服务器(192.168.4.5)地址,代理转到后端web服务器(192.168.2.100/192.168.2.200)

[root@client ~]# curl http://192.168.4.5

服务器集群池属性设置

weight可以设置后台服务器的权重,max_fails可以设置后台服务器的失败次数,fail_timeout可以设置后台服务器的失败超时时间。

upstream webserver {

  server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30;  #weight设置服务器权重值,默认值为1#max_fails设置最大失败次数

  server 192.168.2.200 weight=2 max_fails=2 fail_timeout=30;  #fail_timeout设置失败超时时间,单位为秒

  server 192.168.2.101 down;  #down标记服务器已关机,不参与集群调度

}

nginx TCP/UDP调度器

1、部署nginx服务器

编译安装必须要使用--with-stream参数开启4层代理模块。

  1. [root@proxy ~]# yum –y install gcc pcre-devel openssl-devel        //安装依赖包
  2. [root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
  3. [root@proxy ~]# cd nginx-1.12.2
  4. [root@proxy nginx-1.12.2]# ./configure \
  5. > --with-http_ssl_module                         //开启SSL加密功能
  6. > --with-stream                                 //开启4层反向代理功能
  7. [root@proxy nginx-1.12.2]# make && make install     //编译并安装

2、配置Nginx服务器,添加服务器地址池,实现TCP/UDP反向代理功能

1)修改/usr/local/nginx/conf/nginx.conf配置文件

  1. [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
  2. stream {
  3. upstream backend {
  4. server 192.168.2.100:22;            //后端SSH服务器的IP和端口
  5. server 192.168.2.200:22;
  6. }
  7. server {
  8. listen 12345;                    //Nginx监听的端口
  9. proxy_connect_timeout 1s;
  10. proxy_timeout 3s;
  11. proxy_pass backend;
  12. }
  13. }
  14. http {
  15. .. ..
  16. }

Nginx反向代理,Nginx的TCP/UDP调度器以及Nginx常见问题处理的更多相关文章

  1. 二十.Nginx反向代理、Nginx的TCP/UDP调度器、Nginx常见问题处理

    proxy client web1 web2 1.nginx反向代理   使用Nginx实现Web反向代理功能,实现如下功能:   后端Web服务器两台(web1 192.168.2.100 web2 ...

  2. nginx反向代理实现均衡负载及调度方法

    http upstream配置参数: ngx_http_upstream_module模块将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用 upstrea ...

  3. Nginx的TCP/UDP调度器

    安装nginx [root@proxy ~]# yum –y install gcc pcre-devel openssl-devel //安装依赖包 [root@proxy ~]# .tar.gz ...

  4. 八、Nginx的TCP/UDP调度器

    nginx 1.9后才可以调用其他应用 1.9前只能调用web 部署nginx服务器----配置----起服务.验证 部署nginx服务器: [root@proxy ~]# yum –y instal ...

  5. iperf测试流量转发(nginx反向代理tcp/udp)

    一.准备工作 服务器1:192.168.33.102     搭建nginx服务,作为反向代理的中转站 服务器2:192.168.33.103    nginx要反向代理的服务器 服务器3:192.1 ...

  6. nginx反向代理 和部分优化

    准备环境  : 两台web服务     安装http  写入文档  并启动 yum -y install httpd echo "192.168.2.100" > /var/ ...

  7. nginx 反向代理时丢失端口的解决方案

        今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但一旦设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的 ...

  8. 服务器上nginx反向代理的配置

    Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发 ...

  9. (总结)Linux服务器上最简单的Nginx反向代理配置

    Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发 ...

随机推荐

  1. C# LINQ(10)

    LINQ 查询 var query = from r in Formula1.GetChampions() where r.Country == "Brazil" orderby ...

  2. HDU 6042 - Journey with Knapsack | 2017 Multi-University Training Contest 1

    /* HDU 6042 - Journey with Knapsack [ 生成函数,五边形定理 ] | 2017 Multi-University Training Contest 1 题意: n种 ...

  3. [引用]MATLAB中的fft后为何要用fftshift

    原文地址:MATLAB中的fft后为何要用fftshift fft是一维傅里叶变换,即将时域信号转换为频域. fftshift是针对频域的,将FFT的DC分量移到频谱中心,重新排列fft,fft1和… ...

  4. PHP mysqli_next_result() 函数

    定义和用法 mysqli_next_result() 函数为 mysqli_multi_query() 准备下一个结果集. 语法 mysqli_next_result(connection);   执 ...

  5. IntelliJ IDEA 运行项目的时候提示 Command line is too long 错误

    在 IntelliJ IDEA 项目运行的时候收到了下面的错误提示: Error running 'Application': Command line is too long. Shorten co ...

  6. TTTTTTTTTTTTTTTTTT Gym 100851L 看山填木块

    题意:这题是给你w列方格,然后给你n个方块,让你加进去,使得这个图变得最高,加的要求是,如果这块的下面,以及左下右下都有,才能放 #include <cstdio> #include &l ...

  7. 括号序列的dp问题模型

    括号序列的dp问题模型 Codeforces314E ◦给定一个长度为n的仅包含左括号和问号的字符串,将问号变成左括号或 右括号使得该括号序列合法,求方案总数. ◦例如(())与()()都是合法的括号 ...

  8. js scroll动画

    知识点 1.window.scrollTo (x,y):可以把内容滚动到指定位置  scroll  scroll:卷动意思(书卷)  从上到下移动   1.window.onscroll 窗口滚动事件 ...

  9. HDU 2176 取(m堆)石子游戏 —— (Nim博弈)

    如果yes的话要输出所有情况,一开始觉得挺难,想了一下也没什么. 每堆的个数^一下,答案不是0就是先取者必胜,那么对必胜态显然至少存在一种可能性使得当前局势变成必败的.只要任意选取一堆,把这堆的数目变 ...

  10. Leetcode题目206.反转链表(简单)

    题目描述: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: ...