針對域名:
vim /usr/local/nginx/conf/vhosts/lb.conf ? ? //自定義名稱
upstream xrc { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //別名
? ? ? ? ?server 192.168.0.1:80 weight=2; ?? //包含的主機server,負載均衡里面的機器
? ? ? ? ?server 192.168.0.2:80 weight=1; ? ?//權重weight
}
server ?{
? ? ? listen 80;
? ? ? server_name www.123.com;
? ? ? location / {
? ? ? ? ? ? ? ?proxy_pass http://xrc/;
? ? ? ? ? ? ? ?proxy_set_header Host $host;
? ? ? ? ? }
}
/etc/init.d/nginx ?restart
針對目錄:
我的需求: 當請求的目錄是 /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 的。
轉載于:https://blog.51cto.com/xiongrc/1788152