Nginx 프로필, 설치 및 프로필 상세 설명
1.1. Nginx 작업 원리 Nginx 는 커 널 과 모듈 로 구성 되 어 있 으 며, 설정 파일 을 찾 아 클 라 이언 트 요청 을 location block (location 은 URL 에 맞 는 명령) 에 표시 하 는 작업 을 수행 합 니 다. location 설정 명령 은 서로 다른 모듈 을 시작 하여 작업 을 수행 합 니 다.
Nginx 모듈 은 핵심 모듈, 기초 모듈 과 제3자 모듈 로 나 뉜 다.
핵심 모듈: HTTP 모듈, EVENT 모듈 (이벤트), MAIL 모듈.
기본 모듈: HTTP Access 모듈, HTTP FastCGI 모듈, HTTP Proxy 모듈, HTTP Rewrite 모듈.
제3자 모듈: HTTP Upstream Request Hash 모듈, Notice 모듈, HTTP Access Key 모듈.
1.2. 성능 우위 웹 서버, 정적 파일, 색인 파일 및 자동 색인 처리 효율 이 높 습 니 다.
프 록 시 서버, 빠 르 고 효율 적 인 역방향 프 록 시, 사이트 성능 향상.
부하 이퀄 라이저 는 내부 적 으로 레일 스 와 PHP 를 지원 하고 HTTP 프 록 시 서버 도 지원 하 며 대외 적 으로 서 비 스 를 할 수 있 습 니 다.간단 한 잘못 사용 과 알고리즘 을 이용 하여 부하 균형 을 맞 추 는 것 도 지원 합 니 다.
성능 측면 에서 Nginx 는 전문 적 으로 성능 디자인 을 위해 효율 을 중시한다.Poll 모델 을 사용 하면 더 많은 병렬 연결 을 지원 하고 큰 병렬 시 낮은 메모 리 를 사용 할 수 있 습 니 다.
안정성 측면 에서 단계별 자원 배분 기술 을 사용 하여 CPU 자원 의 점용 률 을 낮 춘 다.
높 은 가용성 측면 에서 열 비 를 지원 하고 빠르게 작 동 합 니 다.
2. Nginx 컴 파일 설치
2.1. Nginx 설치
# nginx
# http_rewrite_module( ) pcre
# http_gzip_module(gzip ) zlib
# http_ssl_module(HTTPS/SLL) openssl
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# nginx ,
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
# 《Nginx 》
./configure \
--prefix=/usr/local/nginx \
--with-http_ssl_module
#
make && make install
3. Nginx 프로필 (/ usr / local / nginx / conf / nginx. conf) 설정 파일 은 주로 네 부분 으로 구성 되 어 있 습 니 다. main (전역 설정), server (호스트 설정), upstream (부하 균형 서버 설정), location (URL 이 특정 위치 설정 과 일치 합 니 다).
3.1 전역 변수
#Nginx worker
#user nobody nobody;
#Nginx
worker_processes 1;
#worker_processes auto;
# cpu , 。 , 0 1 .
# 1-4 , 5 。eg:
#worker_processes 4 #4 CPU
#worker_cpu_affinity 0001 0010 0100 1000
# ,[debug|info|notice|warn|crit]
#error_log logs/error.log info;
# ID
#pid logs/nginx.pid;
# nginx , (ulimit -n) nginx , nginx , ulimit -n 。
#vim /etc/security/limits.conf
# * soft nproc 65535
# * hard nproc 65535
# * soft nofile 65535
# * hard nofile 65535
worker_rlimit_nofile 65535;
3.2 이벤트 설정
events {
#use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll Linux 2.6 I/O , FreeBSD , kqueue 。
use epoll;
# , nginx worker_processes*worker_connections。 :worker_rlimit_nofile/worker_processes
# : socket (~ 64K),
worker_connections 65535;
#worker : ( , , )
#multi_accept on;
}
3. http 매개 변수
#
include mime.types;
#
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"';
# 。 。
#1.$remote_addr $http_x_forwarded_for ip ;
#2.$remote_user : ;
#3.$time_local : ;
#4.$request : url http ;
#5.$status : ;
#6.$body_bytes_sent : ;
#7.$http_referer : ;
#8.$http_user_agent :
# , 。
#access_log logs/access.log main;
# , IO
error_log logs/error.log crit;
#
#access_log off;
#
#charset utf-8;
# hash
server_names_hash_bucket_size 128;
#
client_max_body_size 8m;
# hearerbuffer
client_header_buffer_size 32k;
# 。
large_client_header_buffers 4 64k;
# 。
sendfile on;
#
tcp_nopush on;
tcp_nodelay on;
# ,
keepalive_timeout 60;
#
client_header_timeout 10;
#
client_body_timeout 10;
#
send_timeout 10;
#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
gzip on;
#
gzip_min_length 1k;
#
gzip_buffers 4 16k;
# ( 1.1, squid2.5 1.0)
gzip_http_version 1.0;
# 1-9 , , , CPU
gzip_comp_level 2;
# , text/html, , , warn。
gzip_types text/plain application/x-javascript text/css application/xml;
#
gzip_vary on;
3.4 가상 호스트 기본 설정
#
server {
#
listen 80;
#
server_name localhost;
# , ,
#charset koi8-r;
#
#access_log logs/host.access.log main;
# URL
location / {
# ,
root html;
# 。
index index.html index.htm;
}
#
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# URL .php 127.0.0.1
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
#php FastCGI
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# .ht ( ngx_http_access_module )
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
#HTTPS
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
3. 5 Nightx 상태 모니터링
#Nginx ,StubStatus Nginx ( )
#location /NginxStatus {
# # StubStatus
# stub_status on;
# # StubStaus
# access_log logs/Nginxstatus.log;
# #Nginx ( Apache htpasswd )
# #auth_basic "NginxStatus";
# #
# #auth_basic_user_file ../htpasswd;
#}
:http://IP/NginxStatus( )
3. 6 역방향 에이전트
# HTTP
#nginx ( )
proxy_connect_timeout 5;
# ( )
proxy_send_timeout 5;
# , ( )
proxy_read_timeout 60;
# (nginx)
proxy_buffer_size 16k;
#proxy_buffers , 32k ,
proxy_buffers 4 32k;
# (proxy_buffers*2)
proxy_busy_buffers_size 64k;
# , , upstream
proxy_temp_file_write_size 64k;
#
proxy_cache_path /data/proxy/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=1g;
#levels=1:2 , 1 , 2 2
#keys_zone: web
#inactive: 。
#max_size: 。
# ( )
proxy_temp_path /data/proxy/temp
#
server {
# 80
listen 80;
server_name localhost;
location / {
# (proxy_cache zone|off, )
proxy_cache cache_one;
#
proxy_cache_valid 200 304 12h;
#
proxy_cache_key $host$uri$is_args$args;
# 7 Web X-Forwarded-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;
#
proxy_pass http://IP;
#
expires 1d;
}
# ( ngx_cache_purge)
#http://www.123.com/2017/0316/17.html
#http://www.123.com/purge/2017/0316/17.html URL
location ~ /purge(/.*) {
allow 127.0.0.1;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
# .jsp、.php、.jspx
location ~.*\.(jsp|php|jspx)?$ {
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://http://IP;
}
3.7 부하 균형
#
upstream my_server_pool {
#
#1. ( )(weight )
#2.ip_hash: IP hash 。( )
#3.fair: 。(upstream_fair )
#4.url_hash: url hash 。( hash )
# :
#down:
#backup:
#max_fails:
#fail_timeout: 。
server 192.168.1.109:80 weight=1 max_fails=2 fail_timeout=30;
server 192.168.1.108:80 weight=2 max_fails=2 fail_timeout=30;
}
#
server {
...
location / {
proxy_pass http://my_server_pool;
}
}
3. 8 URL 재 작성
# URL
if($http_user_agent ~ Firefox){
rewrite ^(.*)$ /firefox/$1 break;
}
if($http_user_agent ~ MSIE){
rewrite ^(.*)$ /msie/$1 break;
}
#
location / {
rewrite ^/(.*)$ https://web8.example.com$1 permanent;
}
3. 9 IP 제한
# IP
location / {
deny 192.168.0.2;
allow 192.168.0.0/24;
allow 192.168.1.1;
deny all;
}
3.10 Nginx 관련 명령
# nginx
nginx
# nginx
nginx -s stop
#
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
다음으로 전송:http://blog.csdn.net/hzsunshine/article/details/63687054
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.