1.创建持久化数据目录
mkdir -p /app/data/nginx/{conf,conf.d,html,logs}
2.编写nginx.conf主配置文件
cat >/app/data/nginx/conf/nginx.conf<<EOF user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; 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; #tcp_nopush on; keepalive_timeout 65; #启用gzip gzip on; #需要压缩文件的最小尺寸,单位是B gzip_min_length 1000; #gzip文件缓存大小 gzip_buffers 4 8k; # 4和8之间有个空格的啊 #gzip压缩文件格式,以下涵盖了一般所需的类型 gzip_types text/plain application/x-javascript text/css application/xml application/javascript application/json; #gzip压缩等级,数值越高压缩得越狠,也越占资源 gzip_comp_level 3; include /etc/nginx/conf.d/*.conf; } EOF
3.创建服务配置文件
cat >/app/data/nginx/conf.d/bestyunyan.culb.conf<<EOF upstream my_server{ ip_hash; server 124.207.22.13:80; server 124.207.22.13:8080; #hash $request_uri; 第三方模块 } server{ listen 80; server_name 172.16.235.11; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://my_server; proxy_redirect off; } } EOF
4.创建测试文件index.html
cat >/app/data/nginx/html/index.html<<EOF <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> </head> <body> <h1>Welcome to nginx!</h1> </body> </html>
5.创建数据卷容器
docker run --name web_data -v /app/data/nginx/html:/usr/share/nginx/html -v /app/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /app/data/nginx/conf.d:/etc/nginx/conf.d -v /app/data/nginx/logs:/var/log/nginx centos
6.创建nginx容器---挂在数据卷
docker pull nginx docker run -d -p80:80 --name nginx --volumes-from web_data nginx