반응형

1.포워드 프록시 (Forward Proxy):
 - 클라이언트와 인터넷 사이에서 동작하는 중간 서버입니다.
 - 클라이언트의 요청을 대신 받아서 서버에 전달하고, 서버로부터 받은 응답을 클라이언트에게 전달합니다.
 - 클라이언트가 직접 서버에 접근하지 않고 프록시 서버를 통해 통신하므로, 클라이언트의 실제 IP 주소를 숨기고

   익명성을   제공할 수 있습니다.
 - 보안을 위해 클라이언트의 요청을 필터링하거나 암호화할 수 있습니다.
 - 캐싱을 통해 반복적인 요청의 응답을 저장하고, 동일한 요청에 대해 서버에 직접 접근하지 않고 캐시된 응답을 제공하여      성능을 향상시킬 수 있습니다.

# Default server configuration
#server {
    #listen 80 default_server;
    #listen [::]:80 default_server;

    #root /var/www/html;

    # Add index.php to the list if you are using PHP
    #index index.html index.htm index.nginx-debian.html;

    #server_name _;

    #location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        #try_files $uri $uri/ =404;
    #}
#}

server {

    listen 8888;

    location / {

        resolver 8.8.8.8;

        proxy_pass http://$http_host$uri$is_args$args;

    }

}

 

2.리버스 프록시 (Reverse Proxy)
 - 클라이언트와 서버 사이에서 동작하는 중간 서버입니다.
 - 서버의 역할을 대신해서 클라이언트의 요청을 받아서 적절한 서버로 전달하고,

    서버로부터 받은 응답을 클라이언트에게 전달합니다.
 - 서버의 로드 밸런싱을 위해 여러 대의 서버를 관리하고, 요청을 분산시켜 서버의 부하를 균형있게 분산시킬 수 있습니다.
 - 보안을 위해 클라이언트의 요청을 필터링하거나 암호화할 수 있습니다.
 - 서버의 내부 구조를 숨기고, 클라이언트에게 단일 진입점을 제공하여 보안을 강화할 수 있습니다.

 

user nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

# 백엔드 upstream 설정
    # upstream myweb-api {
    #     server api:8080;
    # }

# 프론트엔드 upstream 설정
    upstream next-server {
        server 172.17.0.1:3000; # docker를 사용하지 않는다면 localhost:3000(웹서버주소)
    }

    server {
        listen 80;

# /api 경로로 오는 요청을 백엔드 upstream 의 /api 경로로 포워딩
        # location /api {
        #     proxy_pass         http://myweb-api/api;
        # }

# / 경로로 오는 요청을 프론트엔드 upstream 의 / 경로로 포워딩
        location / {
            proxy_pass         http://next-server/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  65;
    # include /etc/nginx/conf.d/*.conf;
반응형

+ Recent posts