Nginx의 location 지시어는 웹 서버에서 요청된 URI에 대한 처리 방식을 결정하는 중요한 설정입니다. 이 글에서는 Nginx의 location 블록 사용법과 패턴 매칭 규칙을 간략하게 소개하고, 실제 설정 예시를 제공하여 이해를 돕습니다. 웹 서버에서 요청을 어떻게 처리할지 결정하려면, 서버는 요청 URI를 분석하여 적절한 처리 규칙을 적용해야 합니다. Nginx에서는 location 지시어를 사용하여 이를 구성합니다 기본 문법 Nginx location 블록의 기본 문법은 다음과 같습니다: location [ = | ~ | ~* | ^~ ] uri { # 구성 지시어 } 여기서 사용되는 옵션들은 다음과 같습니다: = : 정확한 매치. 요청 URI가 지정된 패턴과 정확히 일치할 때만 locat..
https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/ Show signals $ nginx -s signal Start Have to get a root permission $ sudo nginx Reload $ sudo nginx -s reload Stop $ sudo nginx -s stop Test the configurations $ sudo nginx -t
엑세스로를 JSON형태로 남기고 싶을 경우 아래와 같이 설정하면 됩니다.남길 내역은 입맛에 맞게 변경하면 되구요. 더 많은 Variables 를 확인하려면 아래 링크를 확인하세요.http://nginx.org/en/docs/varindex.html log_format to_json '{ "time": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"remote_user": "$remote_user", ' '"body_bytes_sent": "$body_bytes_sent", ' '"request_time": "$request_time", ' '"status": "$status", ' '"request": "$request", ' '"request_meth..
조건특정 아이피와 DELETE 메소드 조합(AND조건)의 요청이 오면 차단 (403리턴) 한다. 설정법geo $blocked_ip { ranges; default 0; 192.168.100.0-192.168.100.255 1; 192.168.50.0-192.168.50.255 1;} server { location / { # 변수 선언시 초기화 한다. 초기화 하지 않아도 되지만 error_log에 초기화라고 계속 나온다. set $blocked _; if ($blocked_ip) { set $blocked A; } if ($request_method == DELETE) { set $blocked "${blocked}B"; } if ($blocked == AB) { return 403; } }}
$ nginx -s signal signal- stop : fast shutdown- quit : graceful shutdown- reload : reloading the configure file- reopen : reopening the log files 기동$ nginx 리로드$ nginx -s reload 셧다운$ nginx -s stop 환경 파일 테스트$ nginx -t https://www.nginx.com/resources/wiki/start/topics/tutorials/commandline/
gzip 관련 설정 중에 gzip_static 이라는 옵션이 있다.이 옵션은 정적 파일을 미리 gzip 압축해서 요청시 마다 압축하지 않고 미리 압축해둔 걸로 제공하는 기능이다. 설정법은 대략 아래와 같다.gzip_static on; 그러나 설정하고 nginx -t 를 돌려보면 에러가 발생할 것이다. 이 기능을 사용하려면 ngx_http_gzip_static_module 을 설치해야 한다.참고 : http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html#gzip_static NGINX 설치 또는 재설치 이 옵션을 설정하려면 NGINX를 재설치하여야 한다.재설치시 ngx_http_gzip_static_module 도 설치되게 옵션을 지정해야 한다.설정..
root 계정이 아닌 일반계정으로 apache를 설치한 경우 well known port(0~1023) 를 LISTEN 할 수 없다.80 포트로 서비스를 하고자 할 경우 아래와 같이 설정하면 된다. 설정법 # apache bin 디렉토리로 이동 $ cd $APACHE_HOME/bin # httpd 파일의 소유자를 root 로 변경 및 sticky bit 추가$ chown root:root httpd$ chmod +s httpd 아래와 같이 나오면 성공-rwsr-sr-x 1 root root 1469025 Sep 27 2012 httpd
* 먼저 Apache가 설치되어 있어야 한다. apache의 apxs를 이용하여 설치함. https://tomcat.apache.org/download-connectors.cgi 에서 소스 다운로드서버에 업로드 후 압축해제 (tar xvfz ooo.tar.gz) 소스홈/native 밑에서# ./configure --with-apxs=[Apache홈]/bin/apxs# make# make install 다 끝나면[Apache홈]/modules 디렉토리 밑에mod_jk.so 파일이 생성된다.
APR, APR-util 설치2.4 부터 APR, APR-util을 먼저 설치해야 함다운로드 : http://apr.apache.org/download.cgi설치 방벙APR# [APR 소스디렉토리]/configure# make# make installAPR-util# [APP-util 소스디렉토리]/configure --with-apr=/usr/local/apr# make# make installApache 설치다운로드 : http://httpd.apache.org/download.cgi설치 방법./configure --prefix=[설치경로] --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-mods-shared=all --enable..
동접사 수 설정 default : 256 변경하려면 설치 전에 변경해야 함 설치 전 src/include/httpd.h 에서 #define HARD_SERVER_LIMIT 256 을 수정해야 함 지정된 값을 넘어서는 요청이 들어올 경우 error.log 엔 아래와 같이 찍힘 [error] server reached MaxClients setting, consider raising the MaxClients setting. 설치 전에 256으로 설정 했다면 설치 후에 httpd.conf 에서 256 내로 설정 변경할 수 있음
1. 개요 - Apache 경우, 자체적으로 일자별로 로그 생성이 되지 않는다. - 물론, Apache에서 제공하는 $APACHE_HOME/bin/rotatelogs 가 존재하지만 이는 설정한 시간이 Apache를 기동한 시점부터 시간단위별 자르기가 되므로 본 목적에 부합하지가 않는다. - 이러한 문제를 해결하기 위해서 cronolog 라는 것이 존재하는데, 이는 손쉽게 날짜별로 로그생성이 가능하다. 2. 설치 1) 다운로드 경로 : http://cronolog.org/download/index.html 2) configure # ./configure --prefix=/home/monitor/apache/cronolog prefix : 설치 경로 3) make 4) make install 3. 설정 (h..
1. 개요클라이언트에서 Apache로의 요청에 대한 응답할 Header에 서버정보를 제거하는 것이 보안에 좋음. 2. 설정법 (httpd.conf)ServerTokens Full 3. 옵션각 옵션은 아래와 같은 정보를 제공한다. (default : Full)=====================================Prod : 웹서버 종류Min : 웹서버 종류, 마이너버전까지Major : 웹서버 종류, 메이저버전까지OS : 웹서버 종류, 버전, 운영체제의 종류Full : 웹서버 종류, 버전, 운영체제의 종류, 설치된 모듈 등===================================== 4. 설정 예ServerTokens Prod--> Server: Apache ServerTokens Min-..
1. Apache 로그레벨의 종류 (아래로 갈수록 세부적으로 출력)none emerg alert crit error warn notice info debug * 2. 설정법 (httpd.conf) ex)# vi httpd.conf ..(중략)… LogLevel Warn ..(중략)… 3. 알아둘 점- 개발시엔 세부적으로 설정하고, 운영시엔 필요한 내용만 출력되게끔 설정할 것.- 세부적으로 많이 나오게 하면 그 만큼 로그파일 크기 커짐- 로그파일이 커지면 vi로 볼시에 불편함- 또한, 로그량이 많으면 필요한 로그를 빠른 시간에 찾기 힘듬
1. 전제 조건- apache 설치 시에 아래와 같이, 반드시 --with-mpm=worker 옵션을 설정 하고 설치한다. 이 옵션을 주지 않을 경우, Default인 Prefork방식으로 설치된다(Linux에 한함)================================================================./configure --prefix=/home/paint/apache-2.2.15 --enable-mods-shared=all --enable-module=so --enable-so --with-mpm=worker================================================================ * 현재 worker 모듈 설치 되었는지 확인법- ..
MPM : Multi-Processing Modules, MPMs (다중 처리 모듈) - 여러 방식이 존재하지만, 대표적으로 Prefork 와 Worker 방식을 많이 사용함. Prefork- 쓰레드가 한개의 자식 프로세스를 여러개 사용하며 각 프로세스는 한번에 한 연결을 담당- worker보다 좀 더 많은 메모리를 사용함- 프로세스간 메모리를 직접 공유하지 않으므로, 메모리 공간이 독립적이어서 안정적임 설정 예 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 옵션 설명 StartServer 아파치 구동시에 자식 프로세스 개수 지정 MinSpareServers, MaxSpareServers 부하..
Apache VirtualHost 설정 1. 설정 방법 2가지1) httpd.conf 에 설정하는 방법2) 별도의 파일에 설정하고 httpd.conf에서 Include 시키는 방법 (추천) 2. 환경 설정 1) 구성계획- 2개의 도메인 운영 예정( test1.paint.co.kr, test2.paint.co.kr)- Port는 두 도메인 모두 7070 포트 사용- Docroot test1.paint.co.kr : /home/paint/vhost/vhost1 test2.paint.co.kr : /home/paint/vhost/vhost2 2) httpd_vhost.conf 수정$APACHE_HOME/conf/extra] # vi httpd_vshot.conf===========================..
1. 개요 1) favicon의 정의 - favicon이란, favorite + icon 의 합성어 - 즐겨찾기를 할 경우 즐겨찾기 목록 좌측의 아이콘을 등록할 때 쓰임/ - 한글로 "파비콘"이라고 칭함 - 즐겨찾기를 수행할 때, Default로 찾는 파일임(소스상에서 다른 지정을 안할 경우) Web Server를 운용하다 보면.. errorlog에 아래와 같은 로그가 남기는 것을 볼 수 있다. favicon은 즐겨찾기 등록시에 옆에 보이는 아이콘이다. 소스상에서 따로 코딩하지 않으면 자동적으로 해당 Docroot의 Root디렉토리에서 찾는다. 아래의 경우, /home/monitor/webapps 경로는 물리적 소스 경로이다. 사실상, 별로 중요치 않은 로그이기 때문에 안 쌓이게 하는 것이 좋다. ===..
1. 문법 SetEnvIf Remote_Addr "^192.168.1.10[23]$" do_not_log CustomLog logs/access.log common env=!do_not_log SetEnvIf 를 통해 "do_not_log" 변수를 만든다. ================================================= Remote_Host - 요청하는 클라이언트의 호스트명 Remote_Addr - 요청하는 클라이언트의 IP 주소 Server_Addr - 요청을 받는 서버의 IP 주소 Request_Method - 사용한 Method 명 (GET, POST 등) Request_Protocol - 요청의 프로토콜 이름과 버젼 ("HTTP/1.1" 등) Request_URI - 요청..
MPM방식중에 대표적인 prefork와 worker방식에 대해 알아보자. 설정파일 경로 : $APACHE_HOME/conf/extra/ httpd-mpm.conf Prefork 방식 설정 예 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 옵션 설명 StartServer 아파치 구동시에 자식 프로세스 개수 지정 MinSpareServers, MaxSpareServers 부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 유지하려고 아파치가 노력하고 부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고 아파치는 노력한다..
KeepAlive정의 특정 한 프로세스가 특정 사용자의 지속적인 요청 작업들을 계속해서 처리하도록 함. 즉, 첫 요청 시에 열어 놓은 Port를 끊지 않고, 지정된 KeepAliveTimeout동안 idle하면 끊는다. KeepAliveTimeout값이 채워지기 전에 다시 요청이 온다면 다시 KeepAliveTimeout은 다시 0부터 Count를 수행한다. 최종적으로, KeepAliveTimeout 지정한 시간만큼 idle하면 그때, 해당 Port연결을 끊는다. 설정법 KeepAlive [On/Off] MaxKeepAliveRequest [회수] KeepAliveTimeout [초] 사용 예 KeepAlive On MaxKeepAliveRequest 100 KeepAliveTimeout 60 개인적인 ..
정의 지정한 HTTP 상태 코드를 받으면 설정한 text나 URL로 Redirect한다. 설정법 ErrorDocument [응답코드] [text또는 URL경로] 사용 예 ErrorDocument 500 "The server made a boo boo." ErrorDocument 404 /missing.html ErrorDocument 404 "/cgi-bin/missing_handler.pl" ErrorDocument 402 http://www.example.com/subscription_info.html
DefaultType text/plain # mime.types 파일에서 정의한Mime-type이 아닐 경우, Default로 처리할 Mime-type설정 TypesConfig conf/mime.types # mime.types 파일 경로 지정 AddType application/x-gzip .tgz AddType text/html .shtml # 추가로 설정할 Mime-type 지정. mime.types 파일 수정없이 추가로 설정할 경우에 해당
- Total
- Today
- Yesterday
- Linux
- Playbook
- 엔서블
- Config History
- Thread Dump
- Ansible
- openssl
- Nexus
- Docker
- 엔시블
- rsync
- 젠킨스
- groovy
- PostgreSQL
- DevOps
- 데브옵스
- 쓰레드덤프
- 플레이북
- ssl
- rundeck
- Password manager
- Jenkins
- nginx
- iTerm2
- 리눅스
- vagrant
- JVM
- URL Encoding
- 파이프라인
- Shell Script
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |