nginx 학습 노트 (1 - 입문)
8008 단어 nginx
nginx 는 주 프로 세 스 와 여러 작업 프로 세 스 가 있 습 니 다.주 프로 세 스 는 설정 을 읽 고 평가 하 며 작업 프로 세 스 를 유지 하 는 데 사 용 됩 니 다.작업 프로 세 스 는 실제 처리 요청 에 사 용 됩 니 다.nginx 는 이벤트 기반 모델 과 운영 체제 에 의존 하 는 메커니즘 을 사용 하여 작업 프로 세 스 간 에 요청 을 효과적으로 나 누 어 줍 니 다.작업 프로 세 스 의 수 는 설정 파일 에서 정 의 됩 니 다. 주어진 설정 을 고정 시 킬 수도 있 고 사용 가능 한 CPU 커 널 수 에 따라 자동 으로 조정 할 수도 있 습 니 다.
nginx 와 그 모듈 의 작업 방식 은 설정 파일 에서 확 정 됩 니 다.기본 적 인 상황 에서 프로필 이름
nginx.conf
을 설정 하고 디 렉 터 리 /usr/ local/nginx/conf
, /etc/nginx
또는 /usr/local/etc/nginx
에 배치 합 니 다.Starting, Stopping, and Reloading Configuration
실행 가능 한 파일 시작 nginx 를 실행 합 니 다.nginx 가 시작 되면 - s 인자 가 있 는 실행 가능 한 파일 을 호출 하여 제어 할 수 있 습 니 다.다음 문법 사용
nginx -s signal
signal 은 다음 매개 변수 중 하나 일 수 있 습 니 다.
nginx -s quit
This command should be executed under the same user that started nginx.
설정 을 다시 불 러 오 는 명령 을 nginx 로 보 내 거나 다시 시작 하기 전에 설정 파일 의 변경 사항 을 적용 하지 않 습 니 다.설정 을 다시 불 러 오 려 면 실행 하 십시오.
nginx -s reload
Configuration File’s Structure
nginx 는 모듈 로 구성 되 어 있 으 며 모듈 은 설정 파일 에서 지정 한 명령 으로 제 어 됩 니 다.명령 은 간단 한 명령 과 블록 명령 으로 나 뉜 다.간단 한 명령 은 이름과 매개 변수 로 구성 되 어 있 으 며, 빈 칸 으로 구분 되 어 있 으 며, 분점 (;) 으로 끝 납 니 다.블록 명령 의 구 조 는 간단 한 명령 과 같 지만 끝 은 분점 이 아니 라 괄호 ({와}) 로 둘러싸 인 추가 명령 입 니 다.하나의 block 명령 이 괄호 안에 다른 명령 을 포함 할 수 있다 면 컨 텍스트 (예 를 들 어 이벤트, http, server, location) 라 고 합 니 다.(이벤트, http, 서버 와 위치)
모든 컨 텍스트 이외 의 설정 파일 에 있 는 명령 은 주 컨 텍스트 에 있 는 것 으로 여 겨 집 니 다.이벤트 와 http 명령 은 주 컨 텍스트 에 머 물 러 있 고 server 는 http 에 있 으 며 location 은 server 에 머 물 러 있 습 니 다.
\ # 기호 뒤의 줄 은 주석 으로 여 겨 집 니 다.
정적 콘 텐 츠 서비스 (정적 콘 텐 츠 처리)
웹 서버 의 중요 한 임 무 는 파일 (예 를 들 어 images 나 정적 HTML 파일) 을 제공 하 는 것 입 니 다.다음 인 스 턴 스 는 요청 에 따라 로 컬 디 렉 터 리 에서 파일 을 제공 합 니 다.
/data/www
(HTML 파일 포함 가능) 과 /data/images
(그림 포함).This will require editing of the configuration file and setting up of a server block inside the http block with two location blocks. 우선 디 렉 터 리 를 만 들 고 임의의 텍스트 내용 을 포함 하 는
/data/www
파일 을 넣 고 index.html
디 렉 터 리 를 만 들 고 그림 을 넣 습 니 다.다음은 프로필 을 엽 니 다.기본 설정 파일 은 서버 블록의 예 를 몇 개 포함 하고 있 으 며 대부분 주석 이 달 려 있 습 니 다.이 블록 들 을 모두 설명 하고 새 server 블록 을 시작 합 니 다.
http {
server {
}
}
일반적으로 설정 파일 은 몇 개의 server 블록 을 포함 할 수 있 습 니 다. 이 server 블록 들 은 감청 포트 와 server name 을 통 해 구분 할 수 있 습 니 다.nginx 가 요청 을 처리 할 서버 (server) 를 결정 하면 서버 블록 에 정 의 된 location 명령 의 매개 변수 테스트 요청 헤더 에 지정 한 URI 입 니 다.
server 블록 에 location 블록 추가:
location / {
root /data/www;
}
이 위치 (location) 블록 은 "/" 접 두 사 를 요청 한 URI 와 비교 합 니 다.일치 하 는 요청 ("/" 를 접두사 로 함) 에 대해 서 는 URI 를 루트 명령 에서 지정 한 경로, 즉
/data/images
에 추가 하여 로 컬 파일 시스템 에서 요청 한 파일 의 경 로 를 만 듭 니 다.일치 하 는 위치 블록 이 여러 개 있 으 면 nginx 는 접두사 가 가장 긴 위치 블록 을 선택 합 니 다.위의 위치 블록 은 가장 짧 은 접 두 사 를 제공 하고 길 이 는 1 이 므 로 모든 다른 위치 블록 이 일치 하 는 항목 을 제공 하지 않 을 때 만 이 블록 을 사용 할 수 있 습 니 다.URI 와 URL 의 차이 점
다음 두 번 째 location 블록 추가:
location /images/ {
root /data;
}
이것 은
/data/www
로 시작 하 는 요청 (location /images/
과 일치 하지만 접두사 가 짧 아서 효력 을 잃 습 니 다.서버 블록 의 최종 설정 은 다음 과 같 아야 합 니 다.server {
location / {
root /data/www;
}
location /images/ {
root /data;
}
}
이것 은 서버 의 작업 설정 입 니 다. 기본 포트 80 에서 검색 할 수 있 고 로 컬 컴퓨터
/
에서 접근 할 수 있 습 니 다.http://localhost/
로 시작 하 는 URI 요청 에 응답 하면 서버 는 /images/
디 렉 터 리 에서 파일 을 보 냅 니 다.요청 /data/images
하면 nginx 서버 는 http://localhost/images/example.png
파일 을 되 돌려 줍 니 다.이러한 파일 이 존재 하지 않 으 면 nginx 는 404 오 류 를 표시 하 는 응답 을 보 냅 니 다.Requests with URIs not starting with /data/images/example.png
will be mapped onto the /images/
directory. For example, in response to the /data/www
request nginx will send the http://localhost/some/example.html
file. nginx 를 시작 하거나
/data/www/some/example.html
새 설정 을 적용 합 니 다.예상 한 결과 에 따라 작업 하지 않 으 면
nginx -s reload
또는 /usr/local/nginx/logs
의 /var/log/nginx
파일 에서 원인 을 찾 아 볼 수 있 습 니 다.Setting Up a Simple Proxy 서버 (간단 한 프 록 시 서버 설정)
nginx 의 일반적인 용법 은 프 록 시 서버 로 설정 하 는 것 입 니 다. 이것 은 서버 가 요청 을 받 아 프 록 시 서버 에 전달 하고 프 록 시 서버 검색 응답 에서 클 라 이언 트 에 게 보 내 는 것 을 의미 합 니 다.
로 컬 디 렉 터 리 에 있 는 파일 을 사용 하여 이미지 요청 을 서비스 하고 모든 다른 요청 을 프 록 시 서버 에 보 낼 기본 프 록 시 서버 를 설정 합 니 다.이 예 에서 이 두 서버 는 nginx 인 스 턴 스 로 정 의 됩 니 다.
우선, nginx 설정 파일 에 다음 과 같은 내용 을 포함 하 는 서버 블록 을 추가 하여 프 록 시 서버 를 정의 합 니 다.
server{
listen 8080;
root /data/upl;
location / {
}
}
포트 8080 에서 감청 하 는 간단 한 서버 입 니 다. (그 전에 표준 포트 80 을 사 용 했 기 때문에 listen 명령 을 지정 하지 않 았 습 니 다) 모든 요청 을 로 컬 파일 시스템
access.log
폴 더 에 표시 합 니 다.이 폴 더 를 만 들 고 폴 더 에 만 듭 니 다 error.log
.data/upl
명령 이 index.html
문맥 에 놓 여 있 음 을 알 수 있 습 니 다.이러한 root
명령 은 server
블록 이 서비스 요청 으로 선택 되 었 으 나 자신의 root
명령 이 없 을 때 사용 된다.다음은 이전 절 에 있 는 서버 설정 을 사용 하여 프 록 시 서버 설정 으로 변경 합 니 다.첫 번 째
location
블록 에서 root
명령 과 매개 변수 에서 지정 한 프 록 시 서버 의 프로 토 콜, 이름과 포트 를 함께 놓 습 니 다 (이 예 에서 location
.server{
location / {
proxy_pass http://localhost:8080;
}
location /images/ {
root /data;
}
}
두 번 째 위치 블록 을 수정 할 것 입 니 다. 이 위치 블록 은 현재
proxy_pass
접 두 사 를 가 진 요청 을 http://localhost:8080
디 렉 터 리 에 있 는 파일 에 표시 하여 전형 적 인 파일 확장자 가 있 는 이미지 의 요청 과 일치 하도록 합 니 다.수 정 된 위치 블록 은 다음 과 같 습 니 다.location ~\.(gif|jpg|png){
root /data/images;
}
이 매개 변 수 는 정규 표현 식 으로
/ images /
, /data/images
또는 .gif
로 끝 나 는 모든 URI 와 일치 합 니 다.정규 표현 식 의 표 시 는 12316 으로 시작 해 야 합 니 다.해당 요청 은 .jpg
디 렉 터 리 에 매 핑 됩 니 다.nginx 가 요청 을 서비스 하기 위해
.png
블록 을 선택 할 때, 먼저 지정 한 접두사 의 location 명령 을 검사 하고, 가장 긴 접두사 가 있 는 location 를 기억 한 다음 정규 표현 식 을 검사 합 니 다.정규 표현 식 이 일치 하면 nginx 는 이것 /data/images
을 선택 합 니 다. 그렇지 않 으 면 이전에 기억 한 위 치 를 선택 합 니 다.프 록 시 서버 의 최종 설정 은 다음 과 같 습 니 다.
server{
location / {
proxy_pass http://localhost:8080/;
}
location ~ \.(gif|jpg|png)${
root /data/images;
}
}
이 서버 는
location
, location
또는 .gif
로 끝 나 는 요청 을 걸 러 내 고 .jpg
디 렉 터 리 에 비 추어 (URI 를 루트 명령 의 인자 에 추가 함으로써) 위 에 설 정 된 프 록 시 서버 에 모든 요청 을 전달 합 니 다.더 많은 명령 을 사용 하여 프 록 시 연결 을 설정 할 수 있 습 니 다.
FastCGI 프 록 시 설정 (FastCGI 프 록 시 설정)
nginx 는 요청 경 로 를 FastCGI 서버 로 이동 하 는 데 사용 되 며, FastCGI 서버 는 다양한 프레임 워 크 와 프로 그래 밍 언어 (예: PHP) 로 구 축 된 프로그램 을 실행 할 수 있 습 니 다.
FastCGI 서버 와 함께 사용 되 는 가장 기본 적 인 Nginx 설정 은
.png
명령 이 아 닌 /data /images
명령 을 사용 하 는 것 을 포함 하고, fastcgi_pass
명령 은 FastCGI 서버 에 전달 되 는 인 자 를 설정 하 는 데 사용 된다.FastCGI 서버 에 proxy_pass
접근 할 수 있다 고 가정 합 니 다.상기 절 에 있 는 프 록 시 설정 을 바탕 으로 fastcgi_param
명령 으로 localhost:9000
명령 을 교체 하고 매개 변 수 를 fastcgi_pass
로 변경 합 니 다.PHP 에서 proxy_pass
인 자 는 스 크 립 트 이름 을 확인 하 는 데 사용 되 고 localhost:9000
인 자 는 요청 인 자 를 전달 하 는 데 사 용 됩 니 다.설정 결 과 는:server {
location / {
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
이 서버 는 FastCGI 프로 토 콜 을 통 해 정적 이미지 요청 을 제외 한 모든 요청 경 로 를
SCRIPT_FILENAME
에서 실행 중인 프 록 시 서버 로 설정 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.