- सेंटोस 7
मेरे पास पोर्ट 80 पर सुनने वाला एक साधारण एनजीएनएक्स प्रॉक्सी डॉकर कंटेनर है । यहाँ है Dockerfile:
FROM centos:7MAINTAINER Brian Ogden# Not currently being used but may come in handyARG ENVIRONMENTRUN yum -y update && \ yum clean all && \ yum -y install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm \ yum -y makecache && \ yum -y install nginx-1.12.0 wget# Cleanup some default NGINX configuration files we don’t needRUN rm -f /etc/nginx/conf.d/default.confCOPY /conf/proxy.conf /etc/nginx/conf.d/proxy.confCOPY /conf/nginx.conf /etc/nginx/nginx.confCMD ["nginx"]
और इस एनजीएनएक्स प्रॉक्सी के लिए यहां मेरा एनजीएनएक्स है । conf:
daemon off;user nginx;worker_processes 2;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024; use epoll; accept_mutex off;}http { include /etc/nginx/mime.types; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 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 /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; client_max_body_size 300m; client_body_buffer_size 300k; large_client_header_buffers 8 64k; gzip on; gzip_http_version 1.0; gzip_comp_level 6; gzip_min_length 0; gzip_buffers 16 8k; gzip_proxied any; gzip_types text/plain text/css text/xml text/javascript application/xml application/xml+rss application/javascript application/json; gzip_disable "MSIE [1-6]\."; gzip_vary on; include /etc/nginx/conf.d/*.conf;}
और यहाँ मेरा प्रॉक्सी कॉन्फ़िगरेशन है:
upstream accountstaging { server 127.0.0.1:5023;}server { listen 80; server_name account.staging.mysite.com; location / { proxy_pass http://accountstaging; proxy_redirect off; 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_set_header X-Forwarded-Host $server_name; }}
मेरा प्रॉक्सी कॉन्फ़िगरेशन पोर्ट 80 पर सुन रहा है और अनुरोधों का अनुरोध करने का प्रयास कर रहा है account.staging.mysite.com पोर्ट 5023 पर एनजीएनआईएक्स प्रॉक्सी सुनने के समान डॉकर होस्ट पर चलने वाले डॉकर कंटेनर के लिए ।
यहाँ मेरा डॉकर-रचना है । yml के लिए Nginx प्रॉक्सी:
version: '3'services: reverseproxy: build: context: ./ dockerfile: docker/Dockerfile image: tsl.devops.reverseproxy.image container_name: tsl.devops.reverseproxy.container ports: - "80:80"
यहाँ डॉकर-रचना है । पोर्ट 5023 पर इस डॉकर कंटेनर सुनने के लिए वाईएमएल: संस्करण: '3'
services: apistaging: build: context: ./ dockerfile: docker/staging/Dockerfile image: tsl.api.example.image container_name: tsl.api.example.container ports: - "127.0.0.1:5023:80"
डॉकरफाइल वास्तव में मेरे प्रश्न के लिए बहुत मायने नहीं रखता है लेकिन यहां यह वैसे भी है:
FROM tsl.devops.dotnetcore.base.image:2MAINTAINER Brian OgdenWORKDIR /appCOPY ./src/Tsl.Example/bin/Release/netcoreapp2.0/publish .ENTRYPOINT ["dotnet", "Tsl.Example.dll"]
मैंने पीछा किया यह उदाहरण मेरा प्रॉक्सी सेटअप करने के लिए ।
मैंने पहले स्टैकएक्सचेंज मंचों पर एक संबंधित प्रश्न पूछा है यहाँ और यहाँ. यह प्रश्न मैंने पोर्ट 5023 पर सुनने वाले एक डॉकर कंटेनर के अनुरोध को अग्रेषित करने के लिए परिदृश्य को परिष्कृत और सरल बना दिया है ।
चूंकि मेरी आधार छवि सेंटोस है जिसका मैंने अनुसरण किया है यह यहाँ यह सुनिश्चित करने के लिए कि सेलिनक्स पोर्ट 5023 को आगे बढ़ने की अनुमति दे रहा है