>  기사  >  백엔드 개발  >  Nginx.conf 구성 요약

Nginx.conf 구성 요약

WBOY
WBOY원래의
2016-08-08 09:30:47955검색

지난 몇 달 동안의 프로젝트는 nginx 환경에서 구축되었습니다. 만일의 경우를 대비해 구성 파일의 관련 내용을 기록해 두겠습니다~~

자세한 구성 정보는 공식 문서를 주의 깊게 참조하세요: http://wiki.nginx.org/Configuration

#사용자 및 사용자 지정 이를 기반으로 nginx의 폴더 접근 권한을 설정하여 불법 사용자가 권한 없이 폴더에 접근하는 것을 방지할 수 있습니다. 그건 그렇고, PHP 프로젝트

#의 로그 파일을 읽고 쓰는 경우 사용자는 nginx가 아닙니다. 왜냐하면 nginx는 구문 분석을 위해 php를 php-cgi로 전달하므로 사용자는 php입니다. -cgi 소유자, 일반적으로 www-data

user nginx nginx;

#nginx를 여는 프로세스 수, 숫자는 다음과 같아야 합니다. 총 CPU 코어 수 이하, 프로그램 동시성 향상

worker_processes 4;

#전역 액세스 및 오류 로그 수준, [ 디버그 | 정보 | 알림 | 오류 발생 ]

access_log /var/nginx/access.log ;

error_log /var/nginx/error.log warning;

#기본 로그 형식 설정

log_format 액세스 $remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'" $http_user_agent" $http_x_forwarded_for';


#프로세스 실행 시 파일

pid /run/nginx.pid ;

#작업 모드 및 최대 연결 수

이벤트

{

#이벤트 모델, 사용 [ kqueue | rtsig | ];

# epoll 모델은 Linux 커널 2.6 이상에서 실행되는 고성능 네트워크 I/O 모델입니다. FreeBSD에서 실행하는 경우 kqueue 모델을 사용하세요.

epoll 사용;

#단일 프로세스의 최대 연결 수(최대 연결 수 = 연결 수 * 프로세스 수) , 내 구성은 768 *4

worker_connections 768;

#동시에 여러 요청을 수락할 수 있으며 높은 동시성

다중 수락;

}

# 설정 http 서버

http

{

MIME을 포함합니다. type; #MIME 형식 사용, 파일 확장자 및 파일 형식 매핑 테이블

default_type application/octet-stream; #기본 파일 형식, 파일 스트림

#charset utf- 8; #기본 인코딩

server_names_hash_bucket_size 128; #서버 이름의 해시 테이블 크기

#상한 설정 업로드 파일 크기는 8MB

client_max_body_size 8m;

#효율적인 파일 전송 모드 활성화, sendfile 함수(제로 복사 모드)를 호출하여 파일 출력 , 일반 응용 프로그램의 경우 on으로 설정하고, 다운로드와 같은 디스크 IO 부하가 높은 응용 프로그램에 사용되는 경우 #디스크와 네트워크 I/의 균형을 맞추기 위해 off로 설정할 수 있습니다. O 처리 속도를 높이고 시스템 로드와 가동 시간을 줄입니다. 참고: 영상이 비정상적으로 표시되면 끄기로 변경하세요.

sendfile on;

#액세스 흑백 목록 설정, 파일 이름, 크기
white_black_list_conf conf/white.list zone=white1:4m;

white_black_list_conf conf/black.list zone=black1:4m; white_list white1 on ; #Whitelist는 http 전체에서 활성화됩니다.{} black_list black1은 http 전체에서 활성화됩니다.{}

tcp_nopush on;

tcp_nodelay on; #네트워크 차단 방지

keepalive_timeout 65 #긴 연결 시간 초과, 단위는 초

# gzip을 켜면 GNU는 정적 리소스를 압축하고 웹사이트 액세스 속도를 최적화합니다.

gzip on; 🎜>#gzip 압축 출력 활성화

gzip_min_length 1k;

#압축을 위한 최소 파일 크기 제한 활성화

gzip_buffers 4 16k;

#gzip 압축 결과 데이터 스트림을 저장하기 위해 여러 단위의 캐시를 확보하고 한 번에 4*16=64k 캐시를 적용하도록 시스템을 설정합니다

gzip_http_version 1.0;

#http1.0 이상을 사용하여 파일 압축

gzip_comp_level 2

#압축 수준 , 1~10, 값이 클수록 압축률이 높아집니다

#압축 파일 형식, css, js, php, jpg, png

gzip_types

텍스트/일반 애플리케이션/x-javascript 텍스트/css 애플리케이션/xml 텍스트/javascript application/x-httpd-php 이미지/jpeg 이미지/gif 이미지/png

gzip_vary on;

#예외 허용

gzip_disable"MISE[1-6]"#IE6 이하에서는 압축 비활성화

#limit_zone 크롤러 $binary_remote_addr 10m; #제한 활성화 IP

upstream www.xxx.com을 사용해야 합니다. {

# 업스트림 로드 밸런싱에서 가중치는 기계 구성에 따라 정의될 수 있는 가중치입니다. 가중치 매개변수는 가중치를 나타냅니다. 가중치가 높을수록 할당될 확률이 높아집니다.

서버 192.168.80.121:80 가중치=3;

서버 192.168.80.122:80 가중치=2;

서버 192.168.80.123:80 가중치=3;

}

#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;

# 각 서버 구성


서버

{

#기본 수신 http 포트 80, ipv4 및 ipv6 모두

listen 80;

listen [::]:80 default_server ipv6only=on;

#여러 도메인 이름을 공백으로 구분하여 사용할 수 있습니다

서버_이름 www.xx.com xx.com;

index index.php;

root /data/www/ xx;

#휴대폰이 다른 페이지로 연결됩니다

위치 / {

# 액세스 터미널 유형 결정

if ($http_user_agent ~* '(Android|iPhone|iPad|webOS|iPod|BlackBerry)') {

rewrite ^.+ http://m. xx.com; } root /usr/share/nginx/html;         index index.php index.html index.htm >


#이미지 캐시 시간 설정 , HTML 페이지 메타 태그와 유사하게 만료 또는 최대 수명



위치 ~ .(html |htm|gif|jpg|

jpeg|png| bmp|swf

)$ {

10일 만료;

root /usr/share /nginx/html;

}#php 가이드 9000 포트


위치 ~ .php$ {

                                                                                                                                   +)$ ;             # 참고: php.ini에 "cgi.fix_pathinfo = 0;"이 있어야 합니다                   # php5-cgi만 사용: ​​🎜>             # 함께 php5-fpm :

            #fastcgi_pass unix:/var/run/php5-fpm.sock; gi_script_name;

include fastcgi_params; }



# JS 및 CSS 캐시 시간 설정



위치 ~ .*.(js|css)?$



{


1시간 만료;

}

# 오류 페이지 error_page 500 502 503 504 /50x. html; location = /50x.html {

root /usr/share/nginx/html;

}

#"/"에 대한 역방향 프록시 활성화

위치 / {


proxy_pass http://127.0.0.1:88 ;


proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

# 백엔드 웹 서버는 X를 통해 사용자의 실제 IP를 얻을 수 있습니다. -Forwarded-For

proxy_set_header 일부 역방향 프록시 구성이며 선택사항입니다.

proxy_set_header Host $host;

client_max_body_size 10m; #클라이언트가 요청할 수 있는 단일 파일의 최대 바이트 수

client_body_buffer_size 128k; #버퍼 프록시는 클라이언트가 요청한 최대 바이트 수를 버퍼링합니다.

proxy_connect_timeout 90; -엔드 서버(프록시 연결 시간 초과)

proxy_send_timeout 90; #백엔드 서버 데이터 반환 시간(프록시 전송 시간 초과)

proxy_read_timeout 90; #연결 성공 후 백엔드 서버 응답 시간(프록시 수신) Timeout)

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 ;

#캐시 폴더 크기를 설정합니다. 이 값보다 크면 업스트림 서버에서 전송됩니다

}

#Nginx 상태를 볼 주소 설정

location /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

auth_basic_user_file confpasswd;

#htpasswd 파일의 내용은 apache에서 제공하는 htpasswd 도구를 사용하여 생성할 수 있습니다.

}

#j2ee를 사용하는 경우 페이지를 포트로 직접 이동할 수 있습니다. 8080, 모든 jsp 페이지는 tomcat 또는 resin

location ~ .(jsp|jspx|do|action)?$ {

proxy_set_header 호스트 $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;

}

}

#모바일 접속을 위한 서버를 설정하고, 메인 사이트

서버에 접속하기 위해 휴대폰에서 요청을 받습니다. {
Listen 80;
server_name m .xx.com www.m.xx.com;


access_log /usr/share/nginx/logs/mobile_access.log;
error_log /usr/share/nginx/logs/mobile_error .log;
위치 / {
루트 /usr/share/nginx/html/mobile;
인덱스 index.html index.htm;
}
위치 ~ .(html|htm| gif |jpg|png)$ {
                                                                                           ~                  ;
FastCGI_SPLIT_PATH_INFO ^(.+. PHP) (/.+) $;
# 참고: "cgi.fix_pathinfo = 0; 🎜>                      ~ | .php;
                                                        ' ' s ' s ' s ‐ ‐ ‐ ‐ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ‐ 문서로 _root$fastcgi_script_name;
                                                                             ~
위 내용은 관련 내용을 포함하여 Nginx.conf 구성 요약을 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.