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/; } }