Nginx의 location 지시어는 웹 서버에서 요청된 URI에 대한 처리 방식을 결정하는 중요한 설정입니다. 이 글에서는 Nginx의 location 블록 사용법과 패턴 매칭 규칙을 간략하게 소개하고, 실제 설정 예시를 제공하여 이해를 돕습니다. 웹 서버에서 요청을 어떻게 처리할지 결정하려면, 서버는 요청 URI를 분석하여 적절한 처리 규칙을 적용해야 합니다. Nginx에서는 location 지시어를 사용하여 이를 구성합니다 기본 문법 Nginx location 블록의 기본 문법은 다음과 같습니다: location [ = | ~ | ~* | ^~ ] uri { # 구성 지시어 } 여기서 사용되는 옵션들은 다음과 같습니다: = : 정확한 매치. 요청 URI가 지정된 패턴과 정확히 일치할 때만 locat..
버전 제한 Java 6 u34 이상 부터 가능 설정법 > 기본 설정 -verbose:gc -Xloggc:/ppaint/logs/gc/gc_%t.log > Rotation 설정 -XX:+UseGCLogFileRotation > 용량 기준으로 분리 -XX:GCLogFileSize=50m -XX:NumberOfGCLogFiles=5 # 50m 마다 분리하며 최대 5개까지 만들겠단 의미 옵션 설명 -verbose:gc GC 로그를 생성 여부 -Xloggc: GC 로그를 쌓을 위치 %t 로 기입하면 gc_2019-08-27.log 형태로 쌓인다. -XX:+UseGCLogFileRotation GC 로테이션 여부 / 이 옵션을 활성화 해야 로테이션을 수행한다. 파일 분리 -XX:GCLogFileSize=50m 지정..
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
# 힙메모리 설정-Xms8g -Xmx8g # GC 설정-XX:+UseG1GC -verbose:gc -Xloggc:/kakao/logs/gc/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps # 힙덤프 설정-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/kakao/logs/heapdump/ # JMX 관련-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticat..
크게 2가지 1.$ kill -3 - 실행한 경로에서 덤프 파일 생성- 만약 -3 을 생략할 경우 프로세스가 종료되므로 조심 2.$ jstack > jstack 경우 부하가 kill -3 보다 있음.CPU 가 100% 인 상황에선 아무래도 kill -3 이 더 나음 PID 확인 방법$ ps -ef | grep java 아래와 같이 awk 를 사용해서 pid만 추출할 수 있다.$ ps -ef | grep java | grep -v grep | awk '{print $2}' * grep -v grep 은 지금 실행하는 명령도 프로세스로 표시 되기 때문에 제외 처리
출저: 자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기 (http://www.yes24.com/24/Goods/5209760?Acode=101) 쓰레드 상태NEW- 쓰레드가 아직 시작 되지 않는 상태 RUNNABLE- 쓰레드가 수행 중인 상태 BLOCKED- 쓰레드가 잠겨 있어서 풀리기만 기다리는 상태 WAITING- 다른 쓰레드가 특정 작업을 수행하여 깨울 때까지 무한정 기다리는 상태- 별다른 요청이 없는 상황에서도 대부분 WAITING 상태 TIMED_WAITING- 다른 쓰레드가 특정 작업을 수행하여 꺠울 때까지 지정된 시간만큼 기다리고 있는 상태 TERMINATED- 쓰레드가 종료된 상태 * 유심히 봐야할 상태는 RUNNABLE 과 BLOCKED
엑세스로를 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
1. $TOMCAT_HOME/bin/catalina.sh 파일 열기 2. 구문 수정변경전 : >> "$CATALINA_OUT" 2>&1 & 변경후 : >> /dev/null 2>&1 & 3. 예제touch "$CATALINA_OUT" if [ "$1" = "-security" ] ; then if [ $have_tty -eq 1 ]; then echo "Using Security Manager" fi shift "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Djava.security.manager \ -Djava.securi..
* 먼저 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..
1. server.xml ... ... 2. 디렉토리 구성위 설정의 service name 과 host name 값 참조하여 ./paint/localhost 과 같이 디렉토리 생성 ./paint/localhost 내에 .xml 을 생성한다. / (Root Context)일 경우, ROOT.xml /aaa 라는 Context-path를 가질 경우, aaa.xml 로 생성한다. 3. ROOT.xml 4. aaa.xmlcontext path에 해당 context-path를 설정
server.xml
동접사 수 설정 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 내로 설정 변경할 수 있음
URIEncoding="UTF-8" 설정
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 모듈 설치 되었는지 확인법- ..
- Total
- Today
- Yesterday
- Linux
- 리눅스
- vagrant
- 데브옵스
- rsync
- iTerm2
- openssl
- URL Encoding
- ssl
- 엔시블
- Password manager
- JVM
- Docker
- Playbook
- Nexus
- Jenkins
- PostgreSQL
- 파이프라인
- DevOps
- 플레이북
- Config History
- Shell Script
- Thread Dump
- groovy
- Ansible
- rundeck
- 쓰레드덤프
- 엔서블
- nginx
- 젠킨스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |