テスト手順:
1. サーバー内で nginx サーバーを構築し、起動します
2. Docker のソースから nginx の公式イメージをプルします。 docker pull nginx、後で使用するために保存しておきます
3. ローカル ディレクトリに 2 つの新しいフォルダーを作成します。ここで作成した新しいフォルダーは /mydata/test1 と /mydata/test2/
にあります4. マークするテストフォルダーに新しいindex.htmlを作成し、最初のHTMLでnginx1を出力し、2番目のHTMLでnginx2を出力します。
5. Dockerコンテナを介して2つのnginxサーバーを実行し、静的ディレクトリを作成したばかりのディレクトリにマップします
[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端口
6. ホストの nginx 設定ファイルを変更します
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. conf.d ディレクトリに入り、default.conf を変更します (conf.d にはそのようなファイルはなく、作成できます。ファイル名は任意で、サフィックスは .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. 保存後に終了し、サーバーを再起動します: systemctl restart nginx
9. ブラウザーから現在のドメイン名を入力し、ページを更新します。nginx1 が出力される場合もあれば、nginx2 が出力される場合もあります。構成は成功しました
以上がnginx と docker を使用して単純な負荷分散を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。