Docker 구축 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.