Nginx 서버 구축 역방향 프 록 시 전 공략
서버 apache 가 현재 의 병발 을 견 디 지 못 하기 때문에 전단 squid 설정 을 사용 한 후에 도 문 제 는 해결 되 지 않 습 니 다. 페이지 프로그램 은 대부분 동적 입 니 다. fastcgi 로 처리 할 수 없습니다. 따라서 Nginx 역방향 프 록 시 apache 를 사용 하려 고 합 니 다. 전체 설정 설치 과정 은 간단 합 니 다. 높 은 병발 을 고려 한 상황 에서설치 하기 전에 최 적 화 를 했 습 니 다. 현재 설정 은 3000 이상 의 병발 을 견 딜 수 있 습 니 다. 그리 크 지 않 은 것 같은 데 요?허 ~ ~ 하지만 충분 합 니 다 ~ ~ 아직 499 문제 가 소량 남아 있 습 니 다. 저 와 토론 하여 해결 해 주 실 것 을 기대 합 니 다.
제1 부분: 설치
1. 사용자 및 그룹 만 들 기
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
2 pcre 를 설치 하여 Nginx 역방향 에이전트 가 rewrite 를 편리 하 게 지원 하도록 합 니 다.
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
tar zxvf pcre-7.8.tar.gz
cd pcre-7.8/
./configure
make && make install
3. Nginx 역방향 에이전트 설치
wget http://sysoev.ru/nginx/nginx-0.7.58.tar.gz
tar zxvf nginx-0.7.58.tar.gz
cd nginx-0.7.58/
./configure --user=www --group=www --prefix=/usr/
local/webserver/nginx --with-http_stub_status_module
--with-http_ssl_module --with-cc-opt='-O2' --with-cpu-opt
=opteron
make && make install
위의 -- with - cc - opt = '- O2' -- with - cpu - opt = opteron 을 주의 하 십시오. 이것 은 컴 파일 러 최적화 입 니 다. 현재 가장 많이 사용 되 는 것 은 3 이 아 닌 - 02 입 니 다. 뒤에 대응 하 는 CPU 모델 입 니 다.
제2 부분: 설정 및 최적화 프로필
1 Nginx. conf 프로필:
user www www;
worker_processes 4;
# [ debug | info | notice | warn | error | crit ]
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that
can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
source_charset GB2312;
server_names_hash_bucket_size 256;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
#size limits
client_max_body_size 50m;
client_body_buffer_size 256k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
# . 502 499
sendfile on;
tcp_nopush on;
keepalive_timeout 120; # , 502
tcp_nodelay on;
include vhosts/upstream.conf;
include vhosts/bbs.linuxtone.conf;
}
2 upstream. conf 프로필 (이것 도 부하 설정 방법 입 니 다.
upstream.conf
upstream bbs.linuxtone.com {
server 192.168.1.4:8099;
}
3. 사이트 프로필
bbs.linuxtone.conf
server
{
listen 80;
server_name bbs.linuxtone.conf;
charset GB2312;
index index.html index.htm;
root /date/wwwroot/linuxtone/;
location ~ ^/NginxStatus/ {
stub_status on;
access_log off;
}
location / {
root /date/wwwroot/linuxtone/;
proxy_redirect off ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500
http_503 http_404;
proxy_max_temp_file_size 128m;
proxy_pass http://bbs.linuxtone.com;
}
매개 변 수 는 모두 조정 되 었 습 니 다. 목적 은 대리 과정 에서 발생 한 502 499 오 류 를 해결 하 는 것 입 니 다.
#Add expires header for static content
location ~* \.(jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
root /date/wwwroot/linuxtone/;
expires 1d;
break;
}
}
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 /exp/nginxlogs/bbs.linuxtone_access.log access;
}
상용 명령 아래 Nginx 의 역방향 에이전트 상용 명령 을 살 펴 보 겠 습 니 다.
proxy pass 명령 어 문법
proxy_pass [url | upstream]
이 명령 은 프 록 시 포트 나 소켓, URL 을 설정 하 는 데 사 용 됩 니 다.
proxy redirect 명령 어 문법
proxy_redirect [off | default | redirect replacement]
이 명령 은 프 록 시 서버 의 응답 헤더 의 "location" 과 "refresh" 를 변경 하 는 데 사 용 됩 니 다. 이 명령 의 역할 은 아직 파악 하지 못 했 습 니 다. 실제 설정 은 모두 off 입 니 다. 여러분 이 알 고 계 신다 면 블 로그 에서 댓 글 을 달 아 저 를 지도 해 주 십시오.
proxy next upstream 명령 어 문법
proxy_next_upstream [error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off]
이 명령 은 어떤 상황 에서 다음 서버 로 전송 을 요청 하 는 지 설정 하 는 데 사 용 됩 니 다. upstream 부하 균형 프 록 시 서버 풀 에 서 는 백 엔 드 서버 가 지정 한 오류 응답 코드 에 접근 하거나 되 돌 릴 수 없다 고 가정 할 때 이 명령 을 사용 하여 풀 에 있 는 다음 서버 로 전송 을 요청 할 수 있 습 니 다. 매개 변 수 는 설명 합 니 다.
error: 서버 에 연결 할 때 요청 을 보 낼 때 응답 메 시 지 를 읽 는 중 오류 가 발생 했 습 니 다. timeout: 서버 에 연결 할 때 요청 을 전달 할 때 백 엔 드 서버 응답 메 시 지 를 읽 을 때 시간 이 초과 되 었 습 니 다. invalid header: 백 엔 드 서버 가 비어 있 거나 잘못된 응답 을 되 돌려 줍 니 다. http [500 | 502 | 503 | 504 | 404]: 백 엔 드 서버 가 지정 한 응답 상태 코드 를 되 돌려 줍 니 다. off: 다음 백 엔 드 서버 로 전송 요청 금지
proxy set header 명령 어 문법
proxy_set_header header value
이 명령 은 프 록 시 서버 에 전송 되 는 요청 정보 에 헤더 줄 을 다시 정의 하거나 추가 할 수 있 습 니 다. 값 은 텍스트 일 수도 있 고 변수 일 수도 있 으 며 텍스트 와 변수의 조합 일 수도 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.