Home  >  Article  >  Operation and Maintenance  >  How to use nginx and docker to implement a simple load balancing

How to use nginx and docker to implement a simple load balancing

WBOY
WBOYforward
2023-05-14 18:04:06807browse

Test steps:

1. Build an nginx server in the server and start it. Please refer to the specific process, which will not be established here.

2. From docker Pull the official image of nginx from the source, docker pull nginx, keep it for backup

3. Create two new folders in the local directory. The new folders I created here are /mydata/test1, /mydata/test2/

4. Create new index.html in the two test folders respectively to mark, output this is nginx1 in the first html, output this is nginx2 in the second html,

5 .Run two nginx server containers through docker, and map the static directories to the directories we just created.

[root@catchtouch test2]# docker run --name nginx-test -d -p 8080:80 -v /mydata/test1:/usr/share/nginx/html nginx #第一个,将8080端口映射到容器中的80端口
[root@catchtouch test2]# docker run --name nginx-test1 -d -p 8081:80 -v /mydata/test2:/usr/share/nginx/html nginx #第二个,将容器中的8081端口映射到容器中的80端口

How to use nginx and docker to implement a simple load balancing

6. Modify the nginx configuration in the host machine File

Add the following code in http{}

upstream myweb { #myproject为自定义名字

  #ip_hash; #开启则代表用ip地址的形式来分配,可解决sesson问题
   server 127.0.0.1:8080 weight=1; #weight越大,权重越高,被分配的几率越大
   server 127.0.0.1:8081 weight=1; #我全部在本机,因此用了本地的ip,只要相应换成对应的ip或者域名即可
}

7. Enter the conf.d directory and modify default.conf (there is no such file in conf.d and can be created. The file name is arbitrary and the suffix is Must be .conf)

 location / {  
   #如果服务器要获取客户端真实ip,可以用下三句设置主机头和客户端真实地址
   #proxy_set_header host $host;
   #proxy_set_header x-real-ip $remote_addr;
   #proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

   root  /usr/share/nginx/html;
   index index.html index.htm;
   proxy_pass http://myweb; #myweb为之前在nginx.conf中upstream后定义的名字
 }

8. Save and exit, restart the server: systemctl restart nginx

9. Enter the current domain name through the browser and refresh the page. Sometimes nginx1 is output, sometimes nginx2 is output. , configuration successful

At this point, a simple load balancing model configuration is completed

The above is the detailed content of How to use nginx and docker to implement a simple load balancing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete