WEB,WAS

[Nginx] proxy_connect 포함 nginx 설치

IT-PAPA 2024. 1. 8. 06:09
반응형

Nginx를 설치하고 proxy_connect 모듈을 사용하려면 다음과 같은 단계를 따를 수 있습니다. proxy_connect 모듈은 일반적으로 Nginx의 기본 설치에 포함되어 있지 않기 때문에 해당 모듈을 사용하려면 직접 컴파일하여 Nginx를 빌드해야 합니다


https://nginx.org/en/download.html

 

nginx: download

 

nginx.org

1. 필요한 패키지 설치

sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

2. Nginx 소스코드 다운로드 및 압축 해제

# Nginx 소스코드 다운로드
wget http://nginx.org/download/nginx-1.24.0.tar.gz

# 압축 해제
tar -zxvf nginx-1.24.0.tar.gz

3. proxy_connect 모듈 다운로드

# proxy_connect 모듈 다운로드
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git

4. Nginx 컴파일 및 설치

# configure 명령어 실행
cd nginx-1.24.0
patch -p1 < ~/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_102101.patch
./configure --add-module=../ngx_http_proxy_connect_module \
 --prefix=/APP/nginx \
 --pid-path=/var/run/nginx.pid \
 --lock-path=/var/lock/nginx.lock \
 --http-client-body-temp-path=/var/lib/nginx/body \
 --http-proxy-temp-path=/var/lib/nginx/proxy \
 --http-fastcgi-temp-path=/var/lib/nginx/fstcgi \
 --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
 --http-scgi-temp-path=/var/lib/nginx/scgi \
 --http-log-path=/var/log/nginx/access.log \
 --error-log-path=/var/log/nginx/error.log \
 --with-http_realip_module \
 --with-http_stub_status_module \
 --with-stream \
 --with-http_ssl_module \
 --with-compat

# Nginx 컴파일
make

# Nginx 설치
sudo make install

 

옵션 설명
--add-module=../ngx_http_proxy_connect_module proxy_connect 모듈을 Nginx에 추가합니다.
--prefix=/APP/nginx Nginx를 설치할 기본 디렉터리를 설정합니다.
--pid-path=/var/run/nginx.pid Nginx의 PID 파일이 저장될 경로를 지정합니다.
--lock-path=/var/lock/nginx.lock 락 파일의 경로를 설정합니다.
--http-client-body-temp-path=/var/lib/nginx/body HTTP 클라이언트의 바디 데이터를 저장할 임시 디렉터리를 설정합니다.
--http-proxy-temp-path=/var/lib/nginx/proxy 프록시 모듈에서 사용하는 임시 파일을 저장할 디렉터리를 설정합니다.
--http-fastcgi-temp-path=/var/lib/nginx/fstcgi FastCGI 모듈에서 사용하는 임시 파일을 저장할 디렉터리를 설정합니다.
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi uWSGI 모듈에서 사용하는 임시 파일을 저장할 디렉터리를 설정합니다.
--http-scgi-temp-path=/var/lib/nginx/scgi SCGI 모듈에서 사용하는 임시 파일을 저장할 디렉터리를 설정합니다.
--http-log-path=/var/log/nginx/access.log HTTP 요청의 액세스 로그 파일의 경로를 설정합니다.
--error-log-path=/var/log/nginx/error.log 오류 로그 파일의 경로를 설정합니다.
--with-http_realip_module ngx_http_realip_module 모듈을 포함하여 실제 IP 주소를 추출하는 기능을 활성화합니다.
--with-http_stub_status_module ngx_http_stub_status_module 모듈을 활성화하여 Nginx의 상태를 보고하는 기능을 활성화합니다.
--with-stream ngx_stream_core_module을 포함하여 TCP/UDP 프록시 기능을 활성화합니다.
--with-http_ssl_module SSL 지원을 활성화합니다.
--with-compat 가능한 많은 이전 버전과의 호환성을 유지하는 데 도움을 줍니다.

5. Nginx 권한 설정 및 실행파일 복사

# nginx 권한 설정 - 1024 포트 이하의 접근이 가능하게함
setcap CAP_NET_BIND_SERVICE=+eip /APP/nginx/sbin/nginx

# nginx 를 sbin 에 등록하여, 어디서든 명령어를 사용할 수 있게 함
cp -p /APP/nginx/sbin/nginx /usr/sbin

6. Nginx 설정 파일 수정

$ sudo nano /usr/local/nginx/conf/nginx.conf

http {
    # 기존 설정...

    server {
        listen 80;

        location / {
            proxy_pass http://backend_server;
            proxy_connect;
        }
    }

    upstream backend_server {
        server backend_ip:backend_port;
        # 백엔드 서버의 IP 주소와 포트를 실제 값으로 변경해야 합니다.
    }
}

7. Nginx 재시작

sudo nginx -s reload

 

참고 사이트

GitHub - chobits/ngx_http_proxy_connect_module: A forward proxy module for CONNECT request handling

 

GitHub - chobits/ngx_http_proxy_connect_module: A forward proxy module for CONNECT request handling

A forward proxy module for CONNECT request handling - GitHub - chobits/ngx_http_proxy_connect_module: A forward proxy module for CONNECT request handling

github.com

 

728x90
반응형
LIST