预先创建挂载文件
/mydata/nginx/conf/nginx.conf
/mydata/nginx/cert
/mydata/nginx/conf.d
/mydata/nginx/html
/mydata/nginx/logs
运行并且挂载容器
docker run -p 80:80 -p 443:443 --name nginx01 --restart=always \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/cert:/etc/nginx/cert \
-v /mydata/nginx/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d -it nginx
nginx.conf
文件
user nginx;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/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 /var/log/nginx/access.log main;sendfile on;keepalive_timeout 65;include /etc/nginx/conf.d/*.conf;
}
default.conf
文件
server{listen 80;listen [::]:80;charset 'utf-8';server_name chat.frankzhang.space;rewrite ^(.*) https://$server_name$1 permanent;error_page 404 /404.html; location = /404.html{root /usr/share/nginx/html;}
}server{listen 443 ssl;server_name 域名;ssl_certificate ***.pem;ssl_certificate_key ***.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://服务器ip地址:端口号; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_read_timeout 600s; }error_page 404 /404.html; location = /404.html {root /usr/share/nginx/html;}
}