nginx 프로필 과 유 니 버 설 설정
간단 한 소개
nginx 는 웹 서버 로 C 언어 로 개발 되 었 습 니 다. 이벤트 구동 을 바탕 으로 백만 단계 의 tcp 연결 을 처리 할 수 있 습 니 다. 고도 로 모듈 화 된 디자인 과 자유로운 허가증 으로 기능 을 확장 하 는 모듈 이 끊임없이 등장 하고 플랫폼 을 뛰 어 넘 으 며 현재 운영 체제 특유 의 효율 적 인 API 를 사용 하여 자신의 성능 을 향상 시 킬 수 있 습 니 다. nginx 는 성능 을 왕 으로 합 니 다.nginx 를 선택 한 핵심 이 유 는 높 은 병행 요 구 를 처리 하 는 동시에 효율 적 인 서 비 스 를 유지 하 는 것 이다.
장점.
작업 프로 세 스
1. 전역 블록: nginx 전역 에 영향 을 주 는 명령 을 설정 합 니 다.일반적으로 nginx 서버 를 실행 하 는 사용자 그룹, nginx 프로 세 스 pid 저장 경로, 로그 저장 경로, 프로필 도입, worker process 수 생 성 등 이 있 습 니 다.
2. 이벤트 블록: nginx 서버 에 영향 을 주거 나 사용자 와 의 네트워크 연결 을 설정 합 니 다.모든 프로 세 스 의 최대 연결 수가 있 습 니 다. 어떤 이벤트 구동 모델 을 선택 하여 연결 요 구 를 처리 하 는 지, 여러 개의 네트워크 연결 을 동시에 받 아들 이 고 여러 개의 네트워크 연결 을 직렬 화 할 수 있 는 지 여부 등 이 있 습 니 다.
3. http 블록: 여러 개의 server, 프 록 시, 캐 시, 로그 정의 등 절대 다수의 기능 과 제3자 모듈 의 설정 을 포함 할 수 있 습 니 다.파일 도입, mime - type 정의, 로그 사용자 정의, sendfile 전송 파일 사용 여부, 연결 시간 초과, 단일 연결 요청 수 등.
4. upstream: 프 록 시 서 비 스 를 설정 하고 http 모듈 에서 server 단 을 통 해 호출 합 니 다.
5. server 블록: 가상 호스트 의 관련 매개 변 수 를 설정 합 니 다. http 에 여러 개의 server 가 있 을 수 있 습 니 다.
6. location 블록: 요청 한 경로 와 각종 페이지 의 처리 상황 을 설정 합 니 다.
다음은 일반적인 nginx 설정 입 니 다.
# nginx
user www www;
# worker , cpu grep ^processor /proc/cpuinfo | wc -l, auto
worker_processes auto;
# , [ debug | info | notice | warn | error | crit ]
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
# pid
pid logs/nginx.pid;
events {
# nginx epoll ,: use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; http://wiki.codemongers.com/
use epoll;
# worker ( ) ( )
worker_connections 2048;
# 。 off
# multi_accept on;
# ,on , off
# accept_mutex on;
}
http {
# , mime , mime.type
include mime.types;
# mime
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 logs/access.log main;
# , on, IO , off
sendfile on;
# socket
# tcp_nopush on;
# socket 0.2 ,tcp_nopush tcp_nodelay " "
# tcp_nodelay on;
# ,
keepalive_timeout 65;
# 【gzip 】:gzip gzip_static , ,gzip ,gzip_static , :http,server,location, nginx -V
# gzip, off, ,
# gzip on;
# gzip_static, off, .gz , , , ,
gzip_static on;
# gzip , K , 0 , 。
gzip_min_length 3k;
# ( ? ?),32 4K| 16 8K,
# gzip_buffers 4 16k;
# http ( , 1.1 ),1.0|1.1, 1.1, , 1.0
gzip_http_version 1.0;
# , ,off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any, :off
# gzip_proxied any
# 6 ( , , CPU )
gzip_comp_level 6;
# txt,xml,html ,css
# gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
# ”Vary: Accept-Encoding”
gzip_vary on;
# 【http_proxy 】 :http,server,location
# , , 413 。 1m
client_max_body_size 30m;
# Buffer , client_body_buffer_size 。 client_body_buffer_size client_max_body_size, , client_body_temp
client_body_buffer_size 128k;
# , /tmp , nginx
# client_body_temp /tmp
# ,
proxy_connect_timeout 75;
# ,
proxy_read_timeout 75;
# ,
proxy_send_timeout 75;
#
proxy_intercept_errors on;
# body , on|off, on
# proxy_buffering on
# Nginx read_buf, upstream header , ,Nginx upstream sent too big header , client 502。 :proxy_buffer_size 4k/8k
proxy_buffer_size 4k;
# body buffer buffer 。 4 32k read_buf body, 4 , buf body , 4 buf; :proxy_buffers 256 8k
proxy_buffers 4 32k;
# nginx , busy buffer ( proxy_buffers 2 ), 。proxy_busy_buffer_size busy buffer 。 busy_buffer , , ; busy_buffer , busy_buffer , ;
proxy_busy_buffers_size 64k;
# , :proxy_max_temp_file_size 1024m;
proxy_max_temp_file_size
# 。 8k 16k。
proxy_temp_file_write_size 64k;
# proxy 。 :proxy_temp_path path [level1 level2 level3], proxy_temp_path proxy_temp
# proxy_temp_path /usr/local/nginx/proxy_temp 1 2;
# ,service: ,weight: ,max_fails: , ,fail_timeout: ,backup: ,max_conns: ,slow_start: , ,down: server .
upstream backend {
# ,ip_hash;|fair;|hash $request_uri; hash_method crc32; , (weight)
ip_hash;
# ip、
server 192.168.10.100:8080 max_fails=2 fail_timeout=30s ;
server 192.168.10.101:8080 max_fails=2 fail_timeout=30s ;
#
# keepalive 16;
}
# 【 】 include /etc/nginx/sites-enabled/*;
server {
# 80
listen 80;
#
server_name host.example.com;
#
root /var/www/html/oaapp;
#
charset utf-8;
#
access_log /tmp/host.access.log main;
#
error_log /tmp/host.error.log error;
# /proxy +
location /proxy{
#
root /var/www/html/oaapp;
#
index index index.php index.jsp index.html index.htm;
# backend ,
proxy_pass http://backend;
# :proxy_redirect [ default|off|redirect replacement ] :proxy_redirect default :http, server, location
# proxy_redirect off;
# Web X-Forwarded-For IP
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}
# .php php-fpm
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
# 404 , url
error_page 404 /404.html;
location = /404.html {
access_log logs/access.log maintry;
proxy_pass http://192.168.10.100:8080/error404.php;
}
# 50x , url
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.