LAMP架構——nginx代理--根據訪問的目錄來區分後端的web

我的需求: 當請求的目錄是 /aaa/ 則把請求發送到機器a,當請求的目錄爲/bbb/則把請求發送到機器b,除了目錄/aaa/與目錄/bbb/外,其他的請求發送到機器b


我的配置文件內容爲:

upstream aaa.com
{
            server 192.168.111.6;
}
upstream bbb.com
{
            server 192.168.111.20;
}
server {
        listen 80;
        server_name li.com;
        location /aaa/
        {
            proxy_pass http://aaa.com/aaa/;
            proxy_set_header Host   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location /bbb/
        {
            proxy_pass http://bbb.com/bbb/;
            proxy_set_header Host   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location /
        {
            proxy_pass http://bbb.com/;
            proxy_set_header Host   $host;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

說明:
1 以上配置文件中的 aaa.com 以及 bbb.com 都是自定義的,隨便寫。
2 upstream 中的server 可以寫多個,例如

upstream aaa.com
{
server 192.168.111.6;
server 192.168.111.4;
server 192.168.111.5;
}

3 proxy_pass http://aaa.com/aaa/ 這裏必須要加這個目錄,不然就訪問到根目錄了。
4 實際上,上述配置文件中, localtion /bbb/ 部分是可以省略掉的,因爲後邊的 location / 已經包含了/bbb/,所以即使我們不去定義 localtion /bbb/ 也是會訪問到 bbb.com 的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章