docker-compose安装nginx

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/;
    }
}
原文地址:https://www.cnblogs.com/liaozhenghan/p/14392437.html