WEB (6) 썸네일형 리스트형 [Nginx]proxy_pass 설정 - 여러 서비스에 도메인 설정하기 목적 하나의 서버에서 여러 서비스를 동작시킬 때, 각 서비스는 다른 포트를 사용합니다. 이때, 특정 도메인을 통해 서비스에 접근하려면 Nginx의 proxy_pass 설정을 사용하여 도메인과 포트를 연결해야 합니다. 예시 한 서버에서 두 개의 서비스인 zabbix와 grafana를 운영한다고 가정해봅시다. zabbix → 80 port grafana → 3000 port 이렇게 각각 다른 포트에서 동작 중인 서비스에 도메인을 연결해주기 위한 Nginx 설정은 아래와 같습니다: Grafana에 대한 설정 (/etc/nginx/conf.d/grafana.conf) server { listen 80; listen [::]:80 ipv6only=on; server_name grafana.jeff.com; acc.. [Nginx]X-Forwarded-For(XFF) 설정 Concept 웹 서버나 웹 어플리케이션 서버(WAS) 앞에 L4 또는 프록시 서버를 두면, 웹 서버는 클라이언트가 직접 연결한 것이 아니라, 프록시 서버를 통해 연결된 것으로 인식합니다. 쉽게 설명하면, 웹 서버는 실제 사용자의 IP 대신 프록시 서버의 IP를 보게 됩니다. 클라이언트 (실제 사용자) ⟶ 프록시 서버 ⟶ 웹 서버 이때 웹 서버가 실제 클라이언트의 IP 주소를 알아내려면 어떻게 해야 할까요? 바로 X-Forwarded-For라는 헤더를 사용하는 것입니다. X-Forwarded-For란? X-Forwarded-For (XFF) 헤더는 프록시 서버나 로드 밸런서를 통해 웹 서버에 도달하는 HTTP 요청에서 원래 클라이언트의 IP 주소를 식별하는 데 사용됩니다. 예를 들어, XFF 값이 cli.. [Nginx]Customizing 301 pages to hide nginx information Purpose curl 명령어로 사이트를 조회했을때 301 code page와 Nginx 정보를 같이 반환한다. 외부 사용자가 WEB 정보를 알 수 없도록 Nginx 정보를 변경한다. 소스 변경 후 컴파일 아래 파일에서 nginx → [원하는 내용] 으로 변경 후 컴파일 소스 수정 /nginx-1.20.2/src/http/ngx_http_special_response.c static u_char ngx_http_error_tail[] = "nginx" CRLF "" CRLF "" CRLF 컴파일 ## configure cd nginx-1.20.2 && \ ./configure \ --prefix=/etc/nginx \ --with-http_ssl_module \ --with-http_realip_modu.. [Nginx]응답 헤더에서 Nginx 정보 제거 - remove response header server Purpose 응답 헤더에서 Nginx 정보 숨기기 웹 서버로 nginx를 사용할 때, 기본 설정 상태에서는 응답 헤더에 nginx의 버전 정보가 포함됩니다. 이러한 정보는 악의적인 사용자에게 서버의 버전을 알리게 되어, 특정 버전에 존재하는 보안 취약점을 이용한 공격 대상으로 지정될 수 있습니다. 따라서, nginx의 버전 정보를 숨기는 것은 보안상의 권장 사항입니다. 버전 정보만 숨기기 이 방법은 nginx의 설정만으로 간단하게 버전 정보를 숨길 수 있습니다. 변경 전: nginx 1.20.1 변경 후: nginx 설정 방법: nginx의 주 설정 파일 nginx.conf에 다음 내용을 추가합니다. nginx.conf 내용 추가 http { server_tokens off; } 버전 정보 완전히 변경.. [Nginx]웹 크롤링 차단(Block bad bots) - http_user_agent Purpose 부적절한 웹 크롤링을 차단 더 많은 리스트들은 악성 봇 리스트를 검색하여 환경에 맞게 수정 주요 사이트 검색 로봇 User-Agent naver: Yeti daum: Daum google: Googlebot nginx.conf 에 내용 추가 목적에 맞게 http_user_agent에 내용을 추가한다. server { ## 중략 if ($http_user_agent ~* (^MJ12bot|^MJ12bot/v1.4.5|SemrushBot|SemrushBot-SA|DomainCrawler|MegaIndex.ru|AlphaBot) ) { return 403; } location / { ## 중략 } } [Nginx]파일업로드 크기 제한 - client_max_body_size Nginx에서 대용량 파일 업로드 설정하기 웹 서비스를 운영하다 보면 사용자가 큰 파일을 업로드해야 하는 경우가 발생합니다. 기본적으로 웹 서버는 보안 및 리소스 사용량을 고려하여 업로드 가능한 파일 크기에 제한을 두곤 합니다. 그러나 이 제한을 넘어서는 큰 파일을 업로드하게 될 경우에는 서버의 설정을 변경해 주어야 합니다. Nginx에서는 client_max_body_size 옵션을 통해 요청 본문의 최대 크기를 설정할 수 있습니다. 이 옵션은 클라이언트가 서버로 전송할 수 있는 최대 데이터 크기를 지정하는데 사용됩니다. 1. 전체적인 설정 변경하기 (nginx.conf) http 블록 안에서 설정하면, 모든 서버와 위치에 대한 기본값으로 설정됩니다. http { ... client_max_body_s.. 이전 1 다음