Nginx 에서 자주 사용 하 는 고전 설정 | 역방향 에이전트, HTTPS 리 셋, 포트 리 트 윗
전과 같다https://example.com/index.html호출 인터페이스https://example.com:4433
이러한 배 치 는 일부 작은 프로젝트 에 대해 약간의 번 거 로 움 을 피 할 수 없다. 물론 네트워크 환경 에서 도 하위 도 메 인 이름, 다른 도 메 인 이름 을 사용 하여 크로스 도 메 인 방문 을 할 수 있다.
같은 도 메 인 이름, 같은 포트 를 말 합 니 다. 앞 뒤 가 동시에 접근 서 비 스 를 할 수 있 도록 합 니 다.
전단 주소:https://example.com/index.html
인터페이스 주소:https://example.com/api/
테스트 에 통 과 된 역방향 프 록 시 방식 을 먼저 기록 합 니 다. 즉, 원래 의 server 설정 을 바 꾸 지 않 습 니 다.직접 역방향 에이 전 트 를 통 해 example. com / api 를 example. com: 4443 / 로 재 설정 합 니 다.
location ^~ /api/ {
proxy_pass https://example.com:4433/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
특히 location 세그먼트 의 ^ ~ 는 특정한 문 자 를 시작 으로 일치 하 는 것 입 니 다. 여 기 는 / api / 를 시작 으로 URL 규칙 을 일치 시 키 는 것 입 니 다.
여 기 는 글 을 쓸 수 없습니다. 정규 가 일치 한 다 는 뜻 이기 때문에 정규 를 사용 하면 proxy 를 사용 할 수 없습니다.pass 세그먼트 에서 URI 를 설정 합 니 다. URI 란 4433 포트 뒤의 / 입 니 다.
만약 쓰 지 않 는 다 면, example. com / api / index. php 를 방문 할 때 example. com: 4433 / api / index. php 로 대 리 됩 니 다.백 엔 드 의 루트 경 로 를 찾 을 수 없 기 때문에 여 기 는 / 로 끝 납 니 다.
표준 HTTPS 포트 가 아 닌 표준 https 포트 로 방향 을 바 꾸 려 면 2083 이 HTTP 점프 HTTPS 접근 을 지원 하 는 경우 다음 설정 을 참조 하 십시오.
error_page 497 https://$host:2083$request_uri;
이렇게 설정 하지 않 으 면 기본적으로 사용자 가 사이트 프로 토 콜 을 확인 하지 않 을 때 HTTP 프로 토 콜 을 사용 하여 HTTPS 사 이 트 를 방문 하면 접근 할 수 없습니다.
오류 예: 일반 HTTP 요청 이 HTTPS 포트 로 전송 되 었 습 니 다.
HTTP 강제 이동 HTTPS 일상 은 방문객 의 안전성 을 확보 하기 위해 사이트 전체 가 HTTPS 접근 을 유지 하도록 해 야 합 니 다. 그러면 다음 설정 을 통 해 설정 할 수 있 습 니 다.
server {
listen 80 default_server;
server_name example.com;
rewrite ^(.*) https://$server_name$1 permanent;
# rewrite
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
}
80 개의 감 청 된 HTTP 링크 를 모두 HTTPS 포트 로 재 설정 하 는 방법 입 니 다.
HSTS 정책 은 HTTPS 연결 을 유지 하 는 동시에 HSTS 정책 을 켜 서 방문 자 브 라 우 저 에 게 HTTPS 링크 를 사용 하도록 강제 할 수 있 습 니 다. 다음 코드 를 추가 할 수 있 습 니 다.
Nginx 역방향 프 록 시 역방향 프 록 시 장면 이 많 습 니 다. 예 를 들 어 앞의 앞 뒤 끝 에 도 메 인 네 임 포트 를 통일 하 는 것, 예 를 들 어 부하 균형 등 입 니 다.
location / {
proxy_pass http://example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
전체 매개 변수 설정
location / {
proxy_pass http://example.com;
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;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
포트 리 트 윗 Nginx 포트 리 트 윗 성능 도 매우 강해 서 내부 네트워크 데이터 베이스, 다른 서비스 포트 가 노출 된 장면 에 사용 할 수 있다.
예 를 들 어 내부 네트워크 의 192.168.1.2 MySQL 데이터베이스 포트 를 Nginx 가 있 는 서버 의 33062 포트 를 통 해 노출 한다.
upstream TCP3306 {
hash $remote_addr consistent;
server 192.168.1.2:3306;
}
server {
listen 33062;
proxy_connect_timeout 5s;
proxy_timeout 300s;
proxy_pass TCP3306;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.