docker安装nginx 负载均衡配置
docker安装nginx 负载均衡配置
一个云主机上部署多个网站,对应不同的目录和域名。
可以用 docker 运行 nginx,作为负载均衡或反向代理。
运行一个nginx镜像
$ sudo docker run --name nginxproxy -p 8888:80 -d nginx
从启动的nginx镜像中,复制nginx配置文件到本地
$ sudo mkdir /nginxproxy
$ cd /nginxproxy
$ sudo mkdir -p conf html logs
$ sudo docker cp nginxproxy:/etc/nginx/nginx.conf /nginxproxy/conf
制作两个模拟的nginx网站
nginx01
从启动的nginx中复制配置文件到本地:
$ sudo mkdir /nginx01
$ cd /nginx01
$ sudo mkdir -p conf html logs
$ sudo docker cp nginxproxy:/etc/nginx/nginx.conf /nginx01/conf
在 /nginx01/conf/nginx.conf 中添加 nginx01 网站的配置:vi conf/nginx.conf
include /etc/nginx/conf.d/*.conf;
server {
listen 8081;
root /usr/share/nginx/html;
index index.html index.htm;
}
增加 nginx01 网站首页:echo '8081 port nginx' > /nginx01/html/index.html
然后启动 nginx01 网站的docker:
$ sudo docker run -d -p 8081:8081 --name nginx01 \
-v /nginx01/html:/usr/share/nginx/html \
-v /nginx01/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx01/logs:/var/log/nginx nginx
浏览器访问:http://ip:8081
nginx02
类似 nginx01 方式,制作 nginx02 网站('8081'的地方,改为'8082'):
$ cp -rf /nginx01 /nginx02
$ echo '8082 port nginx' > /nginx02/html/index.html
$ vi /nginx02/conf/nginx.conf
然后启动 nginx02 网站的docker:
$ sudo docker run -d -p 8082:8082 --name nginx02 \
-v /nginx02/html:/usr/share/nginx/html \
-v /nginx02/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx02/logs:/var/log/nginx nginx
浏览器访问:http://ip:8082
负载均衡/反向代理
删除之前运行的镜像:
$ docker ps -a
115460b1e2e2 nginx nginxproxy 0.0.0.0:8888->80/tcp
$ docker rm -f 115460b1e2e2
修改nginx反向代理配置:vi /nginxproxy/conf/nginx.conf
http {
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name w1.test.com;
location / {
proxy_pass http://w1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name w2.test.com;
location / {
proxy_pass http://w2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name wn.test.com;
location /w1 {
proxy_pass http://w1/;
}
location /w2 {
proxy_pass http://w2/;
}
}
server {
listen 80;
server_name wx.test.com;
location / {
proxy_pass http://wx;
proxy_redirect default;
}
}
upstream w1{
server wn.test.com:8081;
}
upstream w2{
server wn.test.com:8082;
}
upstream wx{
server wx.test.com:8081 weight=5;
server wx.test.com:8082 weight=5;
}
挂载本地目录启动nginx:
$ sudo docker run -d -p 80:80 --name nginxproxy \
-v /nginxproxy/html:/usr/share/nginx/html \
-v /nginxproxy/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginxproxy/logs:/var/log/nginx nginx
访问网站
访问nginx01:http://w1.test.com 或 http://wn.test.com/w1/
访问nginx02:http://w2.test.com 或 http://wn.test.com/w2/
随机访问:http://wx.test.com
本帖steem首发地址
最近新帖
- beempy 通过 YAML 格式发布 markdown 文件内容
- beempy 通过 YAML 格式发布 markdown 文件内容
- steem硬分HF23的2300万STEEM被盗,居然不知道二次改密?
- MacOS 上 python3 安装 beem, 操作steem编程
- MacOS 上 brew 安装 python3, 取代默认 python2
- MacOS 用清华镜像源取代 brew 官方源
- python3 安装 beem 最新版本 v23,开发 steem 机器人
- ubuntu无线wifi局域网ping不同,ssh也无法用的问题 steem | hive
- 通过steemauto/hive.vote维护升级看steem/hive对自动点赞的依赖 steem | hive
- steem的API节点速度总体上已经接近hive水平 steem | hive
- 清理docker的容器和数据卷存储 steem | hive
- steem/hive出现异常现象,建议资产转移到交易所 steem | hive
- steem软分叉HF22.8888恐导致安全隐患,建议资产转移到交易所 steem | hive
- 韩国社区要主导steem软分叉HF22.888?报复 hive 硬分叉的黑名单? steem | hive
- HIVE如果没有团队操盘,迟早会吃TRON孙操盘STEEM的亏 steem | hive
- 如何让Brave访问steem类网站更快? steem | hive
#chinese #sct #zzan #sct-cn #sct-freeboard #stem #jjm #cn #hk #tw #dblog #upfundme #lifestyle #pal #marlians #neoxian