Nginx를 HTTP / HTTPS 프록시로 사용할 수 있습니까?
답변
일부 testings를 후, 나는 발견 한 나를 위해 일하는 다음과 같은 구성을.
server {
server_name ~^(www\.)?(?<domain>.+)$;
access_log /var/log/nginx/proxy.access.log main;
error_log /var/log/nginx/proxy.error.log crit;
listen 10.255.1.13:8080;
resolver 8.8.8.8;
location / {
proxy_pass http://$domain;
proxy_redirect off;
proxy_set_header Host $host;
# Optional headers
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For
# $proxy_add_x_forwarded_for;
}
}
이 구성은 HTTPS가 아닌 HTTP에 대해서만 작동합니다.
답변
짧은 대답은 아니오라고 생각합니다. 정방향 프록시 용으로 작성되지 않았습니다.
최신 정보
위의 진술을 명확히하기 위해 :
NGINX는 포워드 프록 싱을 염두에두고 작성되지 않았습니다. 원격으로 구성을 원하는 방식으로 구성 할 수 있지만 다음과 같은 제한 사항을 이해해야합니다.
- 거의 존재하지 않는 캐시 지원 (프록시를 사용하는 주요 이유 중 하나)
- 포트 80 트래픽 이외의 용도로 사용할 수 없음 (즉, cpanel 박스에 로그인하지 않음)
- SSL 기반 트래픽을 지원하지 않습니다
- 표준 프록시 헤더 및 http 캐시 헤더를 지원하지 않습니다.
- 프록시 서버를 지원하는 다른 프로토콜 (예 : VPN 등)은 지원하지 않습니다.
현재 알려지지 않은 다른 고려 사항 :
- 세분화 된 액세스 제어 / 인증을 실제로 수행 할 수있는 능력이 없어 프록시를 수행 할 수 있음
- nginx가 설치되어있는 머신에 보안 위험이 발생할 수 있습니다.
답변
HTTP / HTTPS 프록시를 사용하려면 Squid를 사용해야합니다. 정확히 그렇게하도록 작성되었습니다. Nginx는 역방향 프록시 및로드 밸런서로 작동하도록 작성되었지만 정방향 프록시로는 작동하지 않습니다.