Docker 구축 nginx

3242 단어
1、 docker pull nginx
docker pull daocloud.io/nginx
mkdir -p /www/log mkdir -p /www/html 2、 docker run -p 8801:80 --name nginx01 -v /www:/www -v /www/log:/www/log -v /www/html:/www/html -v /etc/nginx.conf:/etc/nginx/nginx.conf -itd nginx
firewall-cmd --add-port=8801/tcp --permanent
firewall-cmd --reload
3、vi /etc/nginx.conf
user www www;
worker_processes 4;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;
error_log /www/log/nginx_error.log crit; pid /www/nginx.pid; worker_rlimit_nofile 204800; events { use epoll; worker_connections 204800; } http { include mime.types; default_type application/octet-stream; charset utf-8; keepalive_timeout 60; sendfile on;
log_format main '[remote_user] [request" ' 'body_bytes_sent "http_user_agent" "$http_x_forwarded_for"'; access_log /www/log/access.log access;
server_names_hash_bucket_size 128; client_header_buffer_size 2k; large_client_header_buffers 4 4k; client_max_body_size 8m;
open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 30s;
tcp_nopush on; tcp_nodelay on;
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;
upstream backend {
ip_hash;
server backend1.example.com weight=5 max_fails=3 fail_timeout=30 max_conns=800;
server backend2.example.com:8080;
server backup1.example.com:8080 backup;
}
server { listen 80; server_name 127.0.0.1; index index.php index.htm; root /www/html/; location / {
proxy_pass http://backend;
proxy_redirect off;
백 엔 드 웹 서버 는 X - Forward - for 를 통 해 사용자 의 실제 IP 를 가 져 올 수 있 습 니 다.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client max body size 10m; \ # 클 라 이언 트 가 요청 한 최대 단일 파일 바이트 수 를 허용 합 니 다.
client body buffer size 128 k; \ # 버퍼 에이전트 버퍼 사용자 측 에서 요청 한 최대 바이트 수
proxy connect timeout 300; \ # nginx 와 백 엔 드 서버 연결 시간 초과 (프 록 시 연결 시간 초과)
proxy send timeout 300; \ # 백 엔 드 서버 데이터 전송 시간 (프 록 시 전송 시간 초과)
proxy read timeout 300; \ # 연결 성공 후 백 엔 드 서버 응답 시간 (프 록 시 수신 시간 초과)
proxy buffer size 4k; \ # 프 록 시 서버 (nginx) 에서 사용자 헤드 정 보 를 저장 하 는 버퍼 크기 설정
proxy buffers 4 32k; \ # proxy buffers 버퍼, 웹 페이지 가 평균 32k 이하 이면 이렇게 설정 합 니 다.
proxy busy buffers size 64k; \ # 고부 하 버퍼 크기 (proxy buffers * 2)
proxy temp file write size 64k; \ # 캐 시 폴 더 크기 를 설정 합 니 다. 이 값 보다 크 면 upstream 서버 에서 전 달 됩 니 다.
} location /status { stub_status on; } location ~ .*/.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { expires 30d; } } }
4. 로그 절단
vi /etc/logrotate.d/nginx01
/ www / log / access. log {daily rotate 30 create 644 root missingok notifempty compress sharedscript post rotate docker exec nginx 01 bash - c "if [- f / www / nginx. pid]; then kill - USR 1 docker exec nginx01 cat /www/nginx.pid; echo 로그 포장 완료; fi" endscript}
5. 절단 테스트 logrotate - d - f / etc / logrotate. d / nginx 01
수 동 실행
logrotate -f /etc/logrotate.d/docker_nginx

좋은 웹페이지 즐겨찾기