溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nginx反向代理概述及部署

發(fā)布時(shí)間:2020-04-20 15:16:21 來源:億速云 閱讀:355 作者:三月 欄目:建站服務(wù)器

下文給大家?guī)韓ginx反向代理概述及部署,希望能夠給大家在實(shí)際運(yùn)用中帶來一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用億速云在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)做一個(gè)解答。

1.反向代理概述

反向代理(Reverse Proxy)方式是指以代理云服務(wù)器來接受internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)反向代理服務(wù)器。

環(huán)境準(zhǔn)備:

主機(jī)名IP地址角色系統(tǒng)
web-node1.cometh0:192.168.90.201web-node1節(jié)點(diǎn)CentOS7.2
web-node2.cometh0:192.168.90.202web-node2節(jié)點(diǎn)CentOS7.2
lb-node1.cometh0:192.168.90.203Nginx反向代理CentOS7.2

2.Node節(jié)點(diǎn)部署

在兩臺(tái)web-node節(jié)點(diǎn)中均使用Yum安裝一個(gè)Apache用于做真實(shí)機(jī),監(jiān)聽8080端口

web-node1.com部署

nginx反向代理概述及部署

[root@web-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
[root@web-node1 ~]# yum install -y gcc glibc gcc-c++ make screen tree lrzsz
##部署web-node1 httpd服務(wù)
[root@web-node1 ~]# yum install -y httpd
[root@web-node1 ~]# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
[root@web-node1 ~]# systemctl start httpd
[root@web-node1 ~]# echo "web-node1.com" > /var/www/html/index.html
[root@web-node1 ~]# curl  http://192.168.90.201:8080/
web-node1.com

web-node2.com部署

[root@web-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
[root@web-node1 ~]# yum install -y gcc glibc gcc-c++ make screen tree lrzsz
##部署web-node2 httpd服務(wù)
[root@web-node1 ~]# yum install -y httpd
[root@web-node1 ~]# sed -i 's/Listen 80/Listen 8080/g' /etc/httpd/conf/httpd.conf
[root@web-node1 ~]# systemctl start httpd
[root@web-node1 ~]# echo "web-node2.com" > /var/www/html/index.html
[root@web-node1 ~]# curl  http://192.168.90.202:8080/
web-node2.com

3.反向代理部署

Nginx 源碼編譯安裝,使其支持4層,并監(jiān)聽80端口

  1. [root@lb-node1 ~]# useradd -s /sbin/nologin -M www

  2. [root@lb-node1 ~]# cd /usr/local/src/

  3. [root@lb-node1 src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz

  4. [root@lb-node1 src]# tar xf nginx-1.10.2.tar.gz

  5. [root@lb-node1 src]# cd nginx-1.10.2

  6. [root@lb-node1 nginx-1.10.2]# ./configure --prefix=/usr/local/nginx-1.10.2 \

  7. --user=www --group=www --with-http_ssl_module \

  8. --with-http_stub_status_module --with-file-aio --with-stream

  9. [root@lb-node1 nginx-1.10.2]# make && make install

  10. [root@web-node1 ~]# ln -s /usr/local/nginx-1.10.2/ /usr/local/nginx

  11. ## 測(cè)試配置并啟動(dòng)Nginx

  12. [root@lb-node1 ~]# /usr/local/nginx/sbin/nginx -t

  13. nginx: the configuration file /usr/local/nginx-1.10.2/conf/nginx.conf syntax is ok

  14. nginx: configuration file /usr/local/nginx-1.10.2/conf/nginx.conf test is successful

  15. [root@lb-node1 ~]# /usr/local/nginx/sbin/nginx

3.1配置Nginx7層反向代理
1.配置Nginx反向代理


  1. ##http段配置

  2.    upstream web-cluster {

  3.        # ip_hash;

  4.        server 192.168.90.201:8080 weight=1 max_fails=3 fail_timeout=3;

  5.        server 192.168.90.202:8080 weight=1 max_fails=3 fail_timeout=3;

  6.    }

  7.    server {

  8.        listen 80;

  9.        server_name 192.168.90.203;

  10.    location / {

  11.        proxy_pass http://web-cluster;

  12.        include proxy.conf;

  13.        }

  14.    }

測(cè)試代理

  1. [root@lb-node1 ~]# curl http://192.168.90.203/

  2. web-node1.com

  3. [root@lb-node1 ~]# curl http://192.168.90.203/

  4. web-node2.com

  5. [root@lb-node1 ~]# curl http://192.168.90.203/

  6. web-node1.com

  7. [root@lb-node1 ~]# curl http://192.168.90.203/

  8. web-node2.com

2.通過分組方式,以及User-agent實(shí)現(xiàn)不同代理

  1. #http段配置

  2.         upstream static-cluster {

  3.                server 192.168.90.201:8080 weight=1 max_fails=3 fail_timeout=3;

  4.        }

  5.         upstream dynamic-cluster {

  6.                server 192.168.90.202:8080 weight=1 max_fails=3 fail_timeout=3;

  7.        }

  8.         upstream default-cluster {

  9.                server 192.168.90.202:8080 weight=1 max_fails=3 fail_timeout=3;

  10.        }

  #需要配置本地host解析測(cè)試
        server {
                listen 80;
                server_name nginx.jiege.com;
        location / {
        if ($http_user_agent ~* "Firefox"){
                    proxy_pass http://static-cluster;
                    }
        if ($http_user_agent ~* "Chrome") {
            proxy_pass http://dynamic-cluster;
            }
        proxy_pass http://default-cluster;
            }
     }

測(cè)試分組

##默認(rèn)瀏覽器交給default處理[root@lb-node1 ~]# curl http://nginx.jiege.com
 web-node2.com
 火狐瀏覽器交給static-cluster處理
 谷歌瀏覽器交給dynamic-cluster處理
 

 
 配置ssh以及msql反向代理
stream {
        upstream ssh_proxy {
        hash $remote_addr consistent;
        server 192.168.90.201:22;
    }
        upstream mysql_proxy {
        hash $remote_addr consistent;
        server 192.168.90.202:3306;
        }
    server {
    listen 2222;
    proxy_connect_timeout 1s;
        proxy_timeout 300s;
        proxy_pass ssh_proxy;
    }
    server {
    listen 3333;
    proxy_connect_timeout 1s;
        proxy_timeout 300s;
        proxy_pass mysql_proxy;
        }
  }

2222端口代理至于node1的SSH、3333端口代理至于node2的MYSQL

  1. ## 測(cè)試連接ssh

  2. [root@lb-node1 ~]# ssh -p2222 root@192.168.90.203

  3. root@192.168.90.203's password:

  4. Last login: Wed Oct 19 11:53:04 2016 from 192.168.80.143

  5. [root@web-node1 ~]#

  6. ## 測(cè)試連接mysql

  7. [root@lb-node1 ~]# mysql -h392.168.90.203 -uroot -p1 -P3333

  8. Welcome to the MariaDB monitor.  Commands end with ; or \g.

  9. Your MariaDB connection id is 273

  10. Server version: 5.5.47-MariaDB MariaDB Server

  11. Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

  12. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  13. MariaDB [(none)]>

看了以上關(guān)于nginx反向代理概述及部署,如果大家還有什么地方需要了解的可以在億速云行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,億速云技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

 

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI