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

PHPz
PHPzforward
2023-05-20 22:01:04867browse

Test steps:

1. Build an nginx server in the server and start it

2. Pull the official image of nginx from the source in docker, docker pull nginx, keep it for later use

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

4. Create a new index.html in a test folder to mark, output this is nginx1 in the first html, output this is nginx2 in the second html,

5. Run two nginx servers through docker container, 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 file in the host

In http Add the following code in {}

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 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. Exit after saving and 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, and the configuration is successful

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