nginx. conf 내용 상세 설명
시작 nginx
/usr/local/webserver/nginx/sbin/nginx
역방향 에이전트
먼저 정방 향 프 록 시 를 설명 합 니 다. 예 를 들 어 우리 가 특정한 외국 사 이 트 를 방문 하면 정상적으로 직접 방문 할 수 없습니다. 이때 정방 향 프 록 시 를 이용 하여 우 리 는 먼저 정방 향 프 록 시 서버 에 요청 을 보 내 고 정방 향 프 록 시 서버 에서 외국 사 이 트 를 요청 한 후에 결 과 를 되 돌려 줍 니 다. 외국 사이트 의 경우 처음에 진실 하 게 요청 한 클 라 이언 트 는 알 수 없습니다.역방향 에이전트: 저 희 는 특정한 트 래 픽 사이트, eg 국내의 쇼핑 사이트 에 요청 합 니 다. 이때 요청 한 서버 는 분포 식 으로 배치 되 고 nginx 에서 대리 로 트 래 픽 을 나 누 어 주 었 습 니 다. 그러나 구체 적 으로 저희 의 요청 이 어느 서버 에 걸 렸 는 지 사용자 에 게 알 수 없 는 것 입 니 다. 여 기 는 서버 의 정 보 를 숨 겼 습 니 다.
부하 균형
nginx 는 역방향 프 록 시 서버 역할 을 맡 았 습 니 다. 어떤 규칙 에 따라 배 포 를 요청 합 니까?여기에 부하 균형 전략 을 도입 했다.
하드웨어 부하: F5 소프트웨어 부하: 하드웨어 기반 을 바탕 으로 메시지 큐 를 이용 하여 배포 합 니 다.
균형 알고리즘 (다음 nginx 의 upstream 은 현재 4 가지 방식 의 분 배 를 지원 합 니 다)
1 weight 2 ip_hash 3 fair 4 url_hash
nginx. conf 설정
main: nginx 전역 정 보 를 위 한 설정 이벤트: nginx 작업 모드 설정 http: http 프로 토 콜 정 보 를 위 한 일부 설정 server: 서버 접근 정 보 를 위 한 설정 location: 접근 경로 설정 upstream: 부하 균형 설정 에 사용
# Nginx
user www www;
#nginx , CPU 。
worker_processes 8;
# ,[ debug | info | notice | warn | error | crit ]
error_log /usr/local/nginx/logs/error.log info;
# pid
pid /usr/local/nginx/logs/nginx.pid;
# :
#
# nginx , (ulimit -n) nginx , nginx , ulimit -n 。
worker_rlimit_nofile 65535;
events
{
# ,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll
# Linux 2.6 I/O ,linux epoll
use epoll;
# ( = * )
# , , , cpu 100% 。 , nginx 。
worker_connections 65535;
#keepalive 。
keepalive_timeout 60;
# 。 , 1k, 1k, 。
# getconf PAGESIZE 。
#[root@web001 ~]# getconf PAGESIZE
#4096
# client_header_buffer_size 4k , client_header_buffer_size “ ” 。
client_header_buffer_size 4k;
# , ,max , ,inactive 。
open_file_cache max=65535 inactive=60s;
# 。
# :open_file_cache_valid time :open_file_cache_valid 60 :http, server, location open_file_cache .
open_file_cache_valid 80s;
#open_file_cache inactive , , , , inactive , 。
# :open_file_cache_min_uses number :open_file_cache_min_uses 1 :http, server, location open_file_cache , , cache .
open_file_cache_min_uses 1;
# :open_file_cache_errors on | off :open_file_cache_errors off :http, server, location cache .
open_file_cache_errors on;
}
# http ,
http
{
#
include mime.types;
#
default_type application/octet-stream;
#
#charset utf-8;
# hash
# hash server_names_hash_max_size server_names_hash_bucket_size 。 hash bucket size hash , 。 , hash 。 hash bucket size , , 2。 , 。 , Nginx hash max size hash bucket size , .
server_names_hash_bucket_size 128;
# 。 , 1k, 1k, 。 getconf PAGESIZE 。
client_header_buffer_size 32k;
# 。nginx client_header_buffer_size buffer header , header , large_client_header_buffers 。
large_client_header_buffers 4 64k;
# nginx
client_max_body_size 8m;
# ,sendfile nginx sendfile , on, IO , off, I/O , 。 : off。
#sendfile nginx sendfile (zero copy ) , , on。 IO , off, IO , uptime。
sendfile on;
# , , 。
autoindex on;
# socke TCP_CORK , sendfile
tcp_nopush on;
tcp_nodelay on;
# ,
keepalive_timeout 120;
#FastCGI : , 。 。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#gzip
gzip on; # gzip
gzip_min_length 1k; #
gzip_buffers 4 16k; #
gzip_http_version 1.0; # ( 1.1, squid2.5 1.0)
gzip_comp_level 2; #
gzip_types text/plain application/x-javascript text/css application/xml; # , textml, , , warn。
gzip_vary on;
# IP
#limit_zone crawler $binary_remote_addr 10m;
#
upstream jh.w3cschool.cn {
#upstream ,weight , 。weigth , 。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
**
nginx upstream 4
**
#1.1、 ( )
# , down , 。
#1.2、weight
# ,weight , 。
# :
#upstream bakend {
# server 192.168.0.14 weight=10;
# server 192.168.0.15 weight=10;
#}
#2、ip_hash
# ip hash , , session 。
# :
#upstream bakend {
# ip_hash;
# server 192.168.0.14:88;
# server 192.168.0.15:80;
#}
#3、fair( )
# , 。
#upstream backend {
# server server1;
# server server2;
# fair;
#}
#4、url_hash( )
# url hash , url , 。
# : upstream hash ,server weight ,hash_method hash
#upstream backend {
# server squid1:3128;
# server squid2:3128;
# hash $request_uri;
# hash_method crc32;
#}
#tips:
#upstream bakend{# Ip }{
# ip_hash;
# server 127.0.0.1:9090 down;
# server 127.0.0.1:8080 weight=2;
# server 127.0.0.1:6060;
# server 127.0.0.1:7070 backup;
#}
# server proxy_pass http://bakend/;
# :
#1.down server
#2.weight weight , 。
#3.max_fails: 1. , proxy_next_upstream
#4.fail_timeout:max_fails , 。
#5.backup: backup down , backup 。 。
#nginx , server 。
#client_body_in_file_only On client post debug
#client_body_temp_path 3
#location URL .
}
#
server
{
#
listen 80;
# ,
server_name www.w3cschool.cn w3cschool.cn;
index index.html index.htm index.php;
root /data/www/w3cschool;
# ******
location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#JS CSS
location ~ .*.(js|css)?$
{
expires 1h;
}
#
#$remote_addr $http_x_forwarded_for ip ;
#$remote_user: ;
#$time_local: ;
#$request: url http ;
#$status: ; 200,
#$body_bytes_sent : ;
#$http_referer: ;
#$http_user_agent: ;
# web , IP , $remote_add IP iP 。 http , x_forwarded_for , IP 。
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#
access_log /usr/local/nginx/logs/host.access.log main;
access_log /usr/local/nginx/logs/host.access.404.log log404;
# "/"
location / {
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
# Web X-Forwarded-For IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# , 。
proxy_set_header Host $host;
#
client_max_body_size 10m;
# ,
# , 256k, , firefox IE , 256k , 。 , client_body_buffer_size , ,8k 16k, 。
# firefox4.0 IE8.0, ,200k , 500 Internal Server Error
client_body_buffer_size 128k;
# nginx HTTP 400 。
proxy_intercept_errors on;
# _
#nginx ( )
proxy_connect_timeout 90;
# ( )
# _
proxy_send_timeout 90;
# , ( )
# _ _ ( )
proxy_read_timeout 90;
# (nginx)
# , , proxy_buffers ,
proxy_buffer_size 4k;
#proxy_buffers , 32k
# ( ) , , 4k 8k
proxy_buffers 4 32k;
# (proxy_buffers*2)
proxy_busy_buffers_size 64k;
# proxy_temp_path ,
# , , upstream
proxy_temp_file_write_size 64k;
}
# Nginx
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file confpasswd;
#htpasswd apache htpasswd 。
}
#
# jsp tomcat resin
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
# nginx tomcat resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|
pdf|xls|mp3|wma)$
{
expires 15d;
}
location ~ .*.(js|css)?$
{
expires 1h;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.