Nginx 기본 기능 - Nginx 를 리 버스 프 록 시 로 설정
6139 단어 Nginx
역방향 프 록 시 서버 는 보통 부하 균형 에 사용 된다.
프 록 시 서버 로 설정 하면 Nginx 는 서로 다른 프로 토 콜 의 요청 을 다른 서버 에 전송 하여 처리 할 수 있 으 며, 전송 요청 시 클 라 이언 트 요청 헤 더 를 수정 할 수 있 으 며, 요청 한 서버 응답 을 처리 하 는 캐 시 를 설정 할 수 있 습 니 다.
1. 개술
프 록 시 는 보통 여러 서버 사이 에 부 하 를 분배 하고 서로 다른 사이트 에서 온 내용 을 빈 틈 없 이 표시 하거나 프로 토 콜 에 따라 처리 요청 을 서로 다른 응용 프로그램 서버 에 전달 하 는 데 사용 된다.
2. 프 록 시 서버 에 요청 전달
Nginx 프 록 시 요청 시 지정 한 프 록 시 서버 에 요청 을 보 내 고 응답 을 받 아 클 라 이언 트 에 보 냅 니 다.지정 한 프로 토 콜 에 따라 프 록 시 요청 을 HTTP 서버 (다른 Nginx 서버 또는 비 Nginx 서버) 나 비 HTTP 서버 (PHP 또는 Python 응용 프로그램 을 실행 할 수 있 음) 에 보 낼 수 있 습 니 다.Nginx 가 지원 하 는 프로 토 콜 은 FastCGI, uwsgi, SCGI, memcached 를 포함한다.
2.1 HTTP 프 록 시 서버 에 요청 보 내기
2.1.1 proxy_pass 명령 어
proxy_pass
명령 은 HTTP 프 록 시 서버 에 요청 을 보 낼 수 있 습 니 다. proxy_pass
명령 은 location 블록 에 있 습 니 다.location /some/path/ {
proxy_pass http://www.example.com/link/;
}
다음 설정 은 이 location 에 보 내 는 모든 요청 을
proxy_pass
지정 한 주소 의 프 록 시 서버 로 보 냅 니 다. 주 소 는 도 메 인 이름 이나 IP 주소 일 수 있 고 포트 번 호 를 포함 할 수 있 습 니 다.location ~ \.php {
proxy_pass http://127.0.0.1:8000;
}
2.1.2 URI 교체
프 록 시 주소 에 URI 가 포함 되 어 있 으 면 다음 예 에서 / link / 와 같이 요청 한 URI 부분 은 일치 하 는 location 인자 로 대 체 됩 니 다.예 를 들 어 요청 에 URI: / some / path / page. html 가 있 으 면 이 주소 로 전 송 됩 니 다.http://www.example.com/link/page.html。 프 록 시 주소 에 URI 가 포함 되 어 있 지 않 거나 바 꿀 URI 부분 을 판단 할 수 없 으 면 완전한 요청 URI 를 전달 합 니 다 (수 정 될 수 있 습 니 다).
2.2 HTTP 프 록 시 서버 가 아 닌 서버 로 요청 보 내기
**_pass
명령 은 비 HTTP 프 록 시 서버 로 요청 을 보 낼 수 있 습 니 다.proxy_pass 명령 도 지정 한 서버 를 가리 킬 수 있 습 니 다.이 경우 지정 한 방법 에 따라 그룹 내 서버 간 에 요청 을 할당 합 니 다.
3. 전달 요청 헤더
Nginx 는 기본적으로 프 록 시 요청 에서 두 개의 머리 필드 를 다시 정의 합 니 다: Host 와 Connection, 그리고 요청 헤더 의 중간 값 이 비어 있 는 필드 를 삭제 합 니 다.Host 필드 는
$proxy_host
변수 로 설정 되 었 고, Connection 필드 는 close 로 설정 되 었 습 니 다.proxy_set_header
명령 은 이 설정 을 바 꿀 수도 있 고 다른 머리 필드 를 정기 적 으로 바 꿀 수도 있다.proxy_set_header
명령 은 location 블록 이나 더 높 은 등급 의 블록 에서 사용 할 수 있 고 server 컨 텍스트 나 http 블록 에서 도 사용 할 수 있 습 니 다.location /some/path/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8000;
}
위의 설정 에서 Host 필드 를
$host
변수 로 설정 합 니 다.머리 필드 를 빈 문자열 로 설정 하면 프 록 시 서버 에 전달 되 는 것 을 방지 할 수 있 습 니 다.
location /some/path/ {
proxy_set_header Accept-Encoding "";
proxy_pass http://localhost:8000;
}
4. 버퍼 설정
Nginx 기본 값 으로 프 록 시 서버 의 응답 을 캐 시 합 니 다.응답 은 수신 이 끝 날 때 까지 내부 버퍼 에 저 장 됩 니 다.버퍼 는 느 린 클 라 이언 트 의 성능 을 최적화 하 는 데 도움 이 되 며, 응답 이 Nginx 에서 클 라 이언 트 로 동기 화 되면 프 록 시 서버 의 시간 을 낭비 할 수 있 습 니 다.그러나 버퍼 를 사용 할 때 Nginx 는 프 록 시 서버 가 응답 을 빠르게 처리 할 수 있 도록 합 니 다. 그러나 Nginx 는 응답 을 일정 시간 저장 합 니 다. 클 라 이언 트 는 이 시간 을 기 다 려 야 다운 로드 를 시작 할 수 있 습 니 다.
proxy_buffering
명령 은 캐 시 를 할 수 있 거나 금지 할 수 있다.proxy_buffers
명령 은 캐 시 구역 의 크기 를 조절 하여 요청 한 캐 시 구역 의 개 수 를 할당 할 수 있 습 니 다.프 록 시 에서 응답 을 되 돌려 주 는 첫 번 째 부분 은 독립 된 버퍼 에 저 장 됩 니 다. 이 버퍼 의 크기 는 proxy_buffer_size
명령 에 의 해 설 정 됩 니 다.이 부분 은 보통 상대 적 으로 작은 응답 헤드 를 포함 하고 다른 응답 버퍼 보다 작 을 수 있 습 니 다.다음 예제 에서 버퍼 의 기본 수량 이 증가 하고 첫 번 째 부분 에 응답 하 는 버퍼 크기 는 기본 값 보다 작 습 니 다.
location /some/path/ {
proxy_buffers 16 4k;
proxy_buffer_size 2k;
proxy_pass http://localhost:8000;
}
버퍼 를 닫 으 면 프 록 시 서버 가 돌아 오 는 응답 은 Nginx 에서 클 라 이언 트 에 동기 화 되 어 응답 이 더욱 빠 릅 니 다.
proxy_buffering
명령 을 통 해 지정 한 location 의 캐 시 기능 을 닫 을 수 있 습 니 다.location /some/path/ {
proxy_buffering off;
proxy_pass http://localhost:8000;
}
이 경우 Nginx 는
proxy_buffer_size
설 정 된 버퍼 만 사용 하여 응답 하 는 현재 부분 을 저장 합 니 다.5. 전송 IP 주소 선택 보 내기 IP 주소 선택
프 록 시 서버 에 여러 개의 네트워크 카드 가 있다 면 프 록 시 에 연 결 된 서버 나 상류 에 지정 한 소스 IP 주 소 를 선택해 야 할 때 도 있 습 니 다.Nginx 뒤의 서버 가 특정 IP 나 IP 범위 에서 만 연결 할 수 있 도록 설정 되 었 을 때 유용 합 니 다.
proxy_bind
명령 은 IP 주 소 를 선택 하 는 데 사 용 됩 니 다.location /app1/ {
proxy_bind 127.0.0.1;
proxy_pass http://example.com/app1/;
}
location /app2/ {
proxy_bind 127.0.0.2;
proxy_pass http://example.com/app2/;
}
IP 주소 도 변수 로 설정 할 수 있 습 니 다.예 를 들 어
$server_addr
변 수 는 요청 한 IP 주 소 를 proxy_bind
명령 에 전달 합 니 다.location /app3/ {
proxy_bind $server_addr;
proxy_pass http://example.com/app3/;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.