docker-compose 配置文件

  1. version: '3.1'
  2. services:
  3. nginx:
  4. image: nginx:1.16.1
  5. container_name: nginx
  6. restart: always
  7. ports:
  8. - 80:80
  9. - 443:443
  10. environment:
  11. - TZ=Asia/Shanghai
  12. volumes:
  13. - /srv/nginx/nginx.conf:/etc/nginx/nginx.conf
  14. - /srv/nginx/conf.d:/etc/nginx/conf.d
  15. - /var/log/nginx:/var/log/nginx
  16. - /srv/nginx/data:/data/

常见配置

  1. user nginx;
  2. worker_processes 1;
  3. error_log /var/log/nginx/error.log warn;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. client_max_body_size 50M;
  10. client_header_buffer_size 2M;
  11. large_client_header_buffers 4 1M;
  12. client_body_buffer_size 2M;
  13. include /etc/nginx/mime.types;
  14. default_type application/octet-stream;
  15. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  16. '$status $body_bytes_sent "$http_referer" '
  17. '"$http_user_agent" "$http_x_forwarded_for"';
  18. access_log /var/log/nginx/access.log main;
  19. sendfile on;
  20. tcp_nopush on;
  21. keepalive_timeout 65;
  22. gzip on;
  23. include /etc/nginx/conf.d/*.conf;
  24. }
  25. // 目录 conf.d data nginx.conf
  1. server {
  2. listen 80;
  3. server_name static.nccrc.cn;
  4. # 开启gzip
  5. gzip on;
  6. # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
  7. gzip_min_length 1k;
  8. # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
  9. gzip_comp_level 5;
  10. # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
  11. # 是否在http header中添加Vary: Accept-Encoding,建议开启
  12. gzip_vary on;
  13. # 禁用IE 6 gzip
  14. gzip_disable "MSIE [1-6]\.";
  15. # 设置压缩所需要的缓冲区大小
  16. #gzip_buffers 32 4k;
  17. # 设置gzip压缩针对的HTTP协议版本
  18. gzip_http_version 1.0;
  19. root /data/xxx/;
  20. location / {
  21. index index.html index.htm;
  22. try_files $uri $uri/ /index.html$args;
  23. }
  24. }
  25. #以下属性中,以ssl开头的属性表示与证书配置有关。
  26. server {
  27. listen 443 ssl;
  28. #配置HTTPS的默认访问端口为443。
  29. #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
  30. #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
  31. server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
  32. root html;
  33. index index.html index.htm;
  34. ssl_certificate cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
  35. ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
  36. ssl_session_timeout 5m;
  37. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  38. #表示使用的加密套件的类型。
  39. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
  40. ssl_prefer_server_ciphers on;
  41. location / {
  42. root html; #站点目录。
  43. index index.html index.htm;
  44. }
  45. }
  46. server {
  47. listen 80;
  48. server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
  49. rewrite ^(.*)$ https://$host$1 #将所有HTTP请求通过rewrite指令重定向到HTTPS。
  50. location / {
  51. index index.html index.htm;
  52. }
  53. }