Nginx 연구 기록
19978 단어 nginx
----'개원 중국 지역사회' 에서 발췌
다음은 설치 부터 설정 까지 의 전체 과정 이 며, 그 중의 일부 매개 변 수 를 간략하게 설명 한다.
1. 다운로드 설치
http://nginx.org/en/download.html nginx-1.1.17.tar.gz。
nginx-1.1.17
# tar xvfz nginx-1.1.17.tar.gz
# cd nginx-1.1.17
configure , makefile ,
#./configure --prefix=/usr/local/nginx --with-http_gzip_static_module [--with-debug] [--with-http_image_filter_module]
# make
# sudo make install
, /usr/local , nginx owner grouper, , nginx, :
# groupadd -g 100 nginx
# useradd -u 100 -g 100 nginx
현재 사용자 와 사용자 그룹 을 직접 사용 하거나
# sudo chown {owner}:{group} nginx –R
이로써 설치 과정 은 거의 끝났다.
2. squid 설정
2.1 기본 설정
#
# user
#user nobody;
# worker , cpu
worker_processes 8;
# log (debug|info|notice|warn|error),
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid ,
#pid logs/nginx.pid;
#
events {
# I/O ,Linux epoll ,FreeBSD kqueue
use epoll;
#
worker_connections 51200;
}
2.2 프 록 시 설정:
http {
include mime.types;
default_type application/octet-stream;
#
#charset gb2312;
# servername
server_names_hash_bucket_size 128;
# buffer
client_header_buffer_size 32k;
# buffer header , buffer
large_client_header_buffers 4 32k;
#log
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#log
access_log logs/access.log main;
# sendfile() /
sendfile on;
# / FreeBSD TCP_NOPUSH Linux TCP_CORK。 sendfile
tcp_nopush on;
#keep-alive , ,
#keepalive_timeout 0;
keepalive_timeout 65;
# / socket TCP_NODELAY
tcp_nodelay on;
#gzip
gzip on;
# , , , 。 http “Content-Length” 。
gzip_min_length 1k;
# gzip
gzip_buffers 4 16k;
# gzip , 9 。1 ,9 。
gzip_comp_level 2;
# “text/html” MIME ,“text/html” 。
gzip_ types text/plain application/x-javascript text/css application/xml;
# “Vary: Accept-Encoding”, , bug IE 4-6 。
gzip_vary on;
#server
server {
# DNS,
resolver 8.8.8.8;
resolver_timeout 5s;
#
listen 8080;
#location
# jpg
location ~ .*\.(jpeg|jpg)$ {
proxy_set_header Host $http_host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backserver;
image_filter resize 320 -;
image_filter_jpeg_quality 20;
#error_page 502 = @fallback;
}
location / {
# http host
proxy_set_header Host $http_host;
# ip
proxy_set_header X-Real_IP $remote_addr;
# x-forward
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ! url
proxy_pass $scheme://$http_host$request_uri;
# , I/O
proxy_buffers 256 4k;
#
proxy_max_temp_file_size 0;
#
proxy_connect_timeout 30;
cache
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}
}
2.3 역방향 에이전트 및 부하 균형 설정:
http {
include mime.types;
default_type application/octet-stream;
# servername
server_names_hash_bucket_size 128;
# buffer
client_header_buffer_size 32k;
# buffer header , buffer
large_client_header_buffers 4 32k;
#log
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#log
access_log logs/access.log main;
#
include proxy.conf;
#fastcgi
include fastcgi.conf;
# sendfile() /
sendfile on;
# / FreeBSD TCP_NOPUSH Linux TCP_CORK。 sendfile
tcp_nopush on;
# IP,
upstream backServer{
server 192.168.0.2:8000 weight=2 max_fails=2 fails_timeout=30s;
server 192.168.0.3:8000 weight=3;
server 192.168.0.4:8000 backup;
server 192.168.0.5:8000;
server 192.168.0.6:8000 down;
}
#server
server {
#
listen 8080;
# ,
server_name xxx.com www.yyy.com;
# , ,
access_log logs/access.log main;
#location
# ,nginx
location ~^(images|javascript|js|css|flash|media|static)/ {
#
root /var/www/…/;
#
expires 30d;
}
# webServer, fastcgi : webServer,fastcgi fastcgi , ;
location / {
# IP ,
proxy_pass http://127.0.0.1:8090;
# , upstream
#proxy_pass http://backServer;
}
}
}
2.4 hash url 을 통 해 부하 균형 설정:
제3자 모듈 ngx http upstream hash module 을 설치 해 야 합 니 다.
cd nginx-1.1.17
patch -p0 < /path/nginx.patch
./configure
--add-module=path/
make; sudo make install
설정 파일 의 upstream 에 추가
hash $request_uri; #$http host, $http host $request uri 등 hash 다른 필드 도 가능 합 니 다.
다른:
백 엔 드 의 한 squid 서버 가 지연 되면 예비 서버 로 지정 하거나 백업 squid 서버 를 hash 처리 할 수 있 습 니 다.
upstream backup {
server 10.108.76.61:3128;
server 10.108.76.62:3128;
hash $http_host;
}
location / {
# 502
error_page 502 = @fallback;
}
location @fallback {
proxy_pass http://backup;
}
앞 에 포 함 된 파일
fastcgi.conf
# fastcgi.conf
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_index index.php;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
proxy.conf
# proxy.conf
proxy_redirect off;
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 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
mine.types
# mime.types
types {
text/html html htm shtml;
text/css css;
text/xml xml rss;
image/gif gif;
image/jpeg jpeg jpg;
application/x-javascript js;
text/plain txt;
text/x-component htc;
text/mathml mml;
image/png png;
image/x-icon ico;
image/x-jng jng;
image/vnd.wap.wbmp wbmp;
application/java-archive jar war ear;
application/mac-binhex40 hqx;
application/pdf pdf;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/zip zip;
application/octet-stream deb;
application/octet-stream bin exe dll;
application/octet-stream dmg;
application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/mpeg mp3;
audio/x-realaudio ra;
video/mpeg mpeg mpg;
video/quicktime mov;
video/x-flv flv;
video/x-msvideo avi;
video/x-ms-wmv wmv;
video/x-ms-asf asx asf;
video/x-mng mng;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.