목차 열기

티스토리 뷰

728x90
반응형

리버스프록시와 포워드 프록시 차이

lng1982.tistory.com/288

 

 

Apache로 리버스 프록시 구성하다가 permission Denied 뜨고 며칠 동안 해결도 못하고 구글에는 Selinux 답변만 많아서 nginx를 사용했더니 바로 된다.... 더 빨리 시도해볼 걸 하면서도 이제라도 되어서 다행..

 

하여튼

리버스 프록시 작동 확인 -> ssl(https) 적용 확인 순으로 진행한다.

 

리버스 프록시 작동 확인

unlink /etc/nginx/sites-enabled/default
// Default Virtual host 해제


vi /etc/nginx/sites-available/reverse-proxy.conf

/----------------------------------------------------------
server {
        listen 80;
        listen [::]:80;
        server_name [도메인];

        access_log /var/log/nginx/reverse-access.log;
        error_log /var/log/nginx/reverse-error.log;

        location / {
                    proxy_pass http://[내부 IP]:[포트];
        }
}
/----------------------------------------------------------


sudo service nginx reload


curl http://[도메인]
// curl 후, Permission Denied 등 이상한 오류가 뜨면 안 된다. (아파치의 악몽...)
// 만약 오류가 뜬다면,
// vi /etc/nginx/nginx.conf
// user nginx 부분을 root로 바꾼다.


ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
// sites-enabled에 추가


nginx -t
// 적용 검사
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


접속 성공!

참고: https://velog.io/@prayme/ubuntu%EC%97%90%EC%84%9C-
nginx-reverse-proxy-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

SSL (HTTPS) 적용 + 서브 도메인 연결 예시

server {
    listen 80;
    listen [::]:80;
    server_name [도메인];

    location / {
        return 301 https://[도메인]$request_uri;
    }
}


server {
    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    server_name [도메인];

    ssl_certificate /etc/letsencrypt/live/[도메인]/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/[도메인]/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location ~ /\.ht {
        deny all;
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name db.[도메인];

    ssl_certificate /etc/letsencrypt/live/[도메인]/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/[도메인]/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
    access_log /var/log/nginx/db-access.log;
    error_log /var/log/nginx/db-error.log;

    location / {
        proxy_pass http://[내부 IP]:[포트];
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name nas.[도메인];

    ssl_certificate /etc/letsencrypt/live/[도메인]/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/[도메인]/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    access_log /var/log/nginx/nas-access.log;
    error_log /var/log/nginx/nas-error.log;

    location / {
        proxy_pass http://[내부 IP]:[포트];
    }
}


728x90
반응형
댓글
글 보관함
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Total
Today
Yesterday