這篇文章基于 :? ??http://www.itdecent.cn/p/4b5da484d339? ? ?[? ? ? docker-compose + nginx 實現(xiàn) 簡單灰度 (一)? ? ?]
nginx換成 openresty之后的版本:
docker-compose.yml 內(nèi)容:
version: '3'
services:
? myjava1:
? image: registry.cn-hangzhou.aliyuncs.com/wuy2009123/tomcat8-1
? container_name: myjava1
? ports:
? ? - 8081:8080
? volumes:
? ? - /root/tom/java-docker-compose/tomcat-users.xml:/usr/local/tomcat8/conf/tomcat-users.xml
? ? - /root/tom/java-docker-compose/manager.xml:/usr/local/tomcat8/conf/Catalina/localhost/manager.xml
? ? - /root/tom/java-docker-compose/index1.html:/usr/local/tomcat8/webapps/ROOT/index.html
? command: ["catalina.sh","run"]
? networks:
? ? myjavanet:
? myjava2:
? image: registry.cn-hangzhou.aliyuncs.com/wuy2009123/tomcat8-1
? container_name: myjava2
? ports:
? ? - 8082:8080
? volumes:
? ? - /root/tom/java-docker-compose/tomcat-users.xml:/usr/local/tomcat8/conf/tomcat-users.xml
? ? - /root/tom/java-docker-compose/manager.xml:/usr/local/tomcat8/conf/Catalina/localhost/manager.xml
? ? - /root/tom/java-docker-compose/index2.html:/usr/local/tomcat8/webapps/ROOT/index.html
? command: ["catalina.sh","run"]
? networks:
? ? myjavanet:
? openresty:
? image: registry.cn-hangzhou.aliyuncs.com/wuy2009123/openresty-1
? ports:
? ? - 88:80
? volumes:
? ? - /root/tom/java-docker-compose/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
? networks:
? ? myjavanet:
networks:
? myjavanet:
? ? driver: bridge
? ? ipam:
? ? ? config:
? ? ? ? - subnet: 192.138.0.0/16
nginx.conf 內(nèi)容:
#user nobody;
worker_processes? 1;
#error_log? logs/error.log;
#error_log? logs/error.log? notice;
#error_log? logs/error.log? info;
#pid? ? ? ? logs/nginx.pid;
events {
? ? worker_connections? 1024;
}
http {
? ? include? ? ? mime.types;
? ? default_type? application/octet-stream;
? ? #log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '
? ? #? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '
? ? #? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';
? ? #access_log? logs/access.log? main;
? ? sendfile? ? ? ? on;
? ? #tcp_nopush? ? on;
? ? #keepalive_timeout? 0;
? ? keepalive_timeout? 65;
? ? #gzip? on;
upstream mywebold {
? ? ? ? ? server myjava1:8080 weight=1;
? ? }
? ? upstream mywebnew {
? ? ? ? server myjava2:8080 weight=1;
? ? }
? ? server {
? ? ? ? listen? ? ? 80;
? ? ? ? server_name? localhost;
? ? ? ? #charset koi8-r;
? ? ? ? #access_log? logs/host.access.log? main;
set $weburl mywebold;
? ? ? ? if ($remote_addr ~* "^192\.168\.203\.146$") {
? ? ? ? ? set $weburl mywebnew;
? ? ? ? }
? ? ? ? add_header Myip $remote_addr; #加個自定義頭,看效果
? ? ? ? #location / {
? ? ? ? #? ? root? html;
? ? ? ? #? ? index? index.html index.htm;
? ? ? ? #}
location / {
? ? ? ? ? ? proxy_set_header Host $host;
? ? ? ? ? ? proxy_set_header X-Real-IP $remote_addr;
? ? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ? ? ? proxy_buffering off;
? ? ? ? ? ? proxy_pass http://$weburl;
? ? ? ? }
? ? ? ? #error_page? 404? ? ? ? ? ? ? /404.html;
? ? ? ? # redirect server error pages to the static page /50x.html
? ? ? ? #
? ? ? ? error_page? 500 502 503 504? /50x.html;
? ? ? ? location = /50x.html {
? ? ? ? ? ? root? html;
? ? ? ? }
? ? }
}