1.docker-compose.xml
version: '3.1' services: nginx: restart: always image: registry.cn-shenzhen.aliyuncs.com/tyssq/nginx:1.19.6 volumes: - ./templates:/etc/nginx/templates - ./ssl:/ssl - ./log:/var/log/nginx ports: - "80:80" - "443:443" environment: - NGINX_HOST=tyssq.com - NGINX_PORT=80
2.templates文件夾下新建*.conf.template,如:showdoc.conf.template
server { listen 80; listen [::]:80; server_name 域名;#請求的域名加上面的端口會進來這里 error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location / { proxy_pass http://IP:9001/;#外部請求:域名+端口+/ } }
3.配置ssl證書,ssl文件夾下放證書,emplates文件夾下新建ssl.showdoc.conf.template(可以自己看着命名)
#以下屬性中,以ssl開頭的屬性表示與證書配置有關。 server { listen 443 ssl; #配置HTTPS的默認訪問端口為443。 #如果未在此處配置HTTPS的默認訪問端口,可能會造成Nginx無法啟動。 #如果您使用Nginx 1.15.0及以上版本,請使用listen 443 ssl代替listen 443和ssl on。 server_name yourdomain.com; #需要將yourdomain.com替換成證書綁定的域名。 # root html; # index index.html index.htm; ssl_certificate /ssl/cert-file-name.pem; #需要將cert-file-name.pem替換成已上傳的證書文件的名稱。 ssl_certificate_key /ssl/cert-file-name.key; #需要將cert-file-name.key替換成已上傳的證書密鑰文件的名稱。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #表示使用的加密套件的類型。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS協議的類型。 ssl_prefer_server_ciphers on; location / { proxy_pass http://IP:9001/; } }