웹 개발 자 에 게 보 여 주 는 Nginx 소개

번역자 주: 다른 개발 자 들 이 저 와 똑 같이 웹 프로젝트 에 참여 하거나 많이 썼 는 지 모 르 겠 지만 완전한 배치 응용 이 없 었 습 니 다. ops 즉 운영 하 는 친구 에 게 도움 을 주 었 을 때 가 많 습 니 다.한편, 절조 가 있 는 개발 자로 서 저 는 서버 분야 의 지식 을 이해 하 는 것 이 필요 하 다 고 생각 합 니 다. 이 글 을 읽 은 후에 저 는 nginx 에 대해 초보적인 인식 을 가지 게 되 었 고 자신 에 게 도움 이 되 었 으 며 혼자서 누 릴 수 없어 서 번역 을 했 습 니 다.
웹 개발 자 라면 nginx (독음 은 engine - x 처럼 들 릴 수 있 습 니 다) 를 들 어 본 적 이 있 습 니 다. Nginx 는 속도 가 빠 르 고 기능 이 강 한 http 및 역방향 프 록 시 서버 로 간단 한 설정 을 거 친 후에 페이지 를 위탁 관리 할 수 있 습 니 다.
불 행 히 도 많은 다른 시스템 관리 도구 와 마찬가지 로 관련 원리 튜 토리 얼 과 배치 설명 문서 가 매우 적다.공식 적 으로 위 키 를 제 공 했 지만 내용 이 많 고 복잡 하지만 당신 이 진정 으로 필요 로 할 수 있 는 것들 을 제대로 소개 하지 못 했다.이 위 키 를 한동안 고민 한 후에 저 는 nginx 를 사용 하 는 기초 지식 을 습득 하고 이 를 여기 서 다른 개발 자 와 공유 하 게 되 었 습 니 다. 이 지식 을 더욱 신속하게 습득 하 시기 바 랍 니 다.
본론 으로 들 어가 보 겠 습 니 다.이 튜 토리 얼 에 대해 서 는 VPS (가상 호스트) 가 필요 합 니 다. 이전 설정 과 충돌 하지 않도록 하 는 것 이 좋 습 니 다.
설치 초기 화
현재 ubuntu 를 실행 하 는 가상 호스트 를 가지 고 있다 고 가정 합 니 다. digital ocean) 로그 인 옵션 을 설정 하고 업데이트 합 니 다.  apt  다음  apt-get install nginx  nginx. 를 설치 하여 브 라 우 저 에서 IP 주 소 를 방문 하면 페이지 에 "welcome to ngnix" 정 보 를 표시 합 니 다.OK, 모든 것 이 정상 입 니 다.
nginx 디 렉 터 리 찾기
우리 통과  apt  nginx 를 설치 한 후에 기본 적 인 구 조 를 제공 하여 설정 파일 을 신속하게 설정 하 는 데 도움 을 주 었 습 니 다.모든 nginx 프로필 이 있 습 니 다.  /etc/nginx 에서 (번역자: Mac OS X 환경 에서 homebrew 경 로 를 사용 하 는 것 은 Liux 와 차이 가 있 고 글 의 끝 부분 은 mac 에서 해결 방안 을 제공 합 니 다) 입력  cd  이 디 렉 터 리 에 들 어 갑 니 다.새 설정 옵션 을 추가 해 야 할 곳 은  sites-enabled  폴 더이 폴 더 를 열 면 이름 이  default  txt 문 서 를 열 면 nginx 의 설정 옵션 과 "welcome to nginx" 환영 옵션 의 코드 를 찾 을 수 있 습 니 다. 다음 페이지 를 표시 할 수 있 는 설정 파일 을 만 들 기 시작 합 니 다. sites - enabled 디 렉 터 리 에 빈 파일 을 새로 만 들 고 이름 을 붙 입 니 다.  test 좋아 하 는 텍스트 편집기 로 편집 합 니 다.
주의: 이 디 렉 터 리 아래 에서 하 나 를 발견 할 수 있 습 니 다.  /etc/nginx/sites-available  폴 더 입 니 다. 이 폴 더 는 일반적으로 여러 사 이 트 를 만 들 고 관리 해 야 할 때 유용 합 니 다. 다른 항목 을 조직 하 는 데 도움 을 줄 수 있 습 니 다. nginx 설정 문안 을 추가 하고 연결 해 야 합 니 다.  sites-enabled  디 렉 터 리 아래. 명령 은 다음 과 같 습 니 다.
ln -s /etc/nginx/sites-available/dotcom /etc/nginx/sites-enabled/dotcom

오직  sites-enabled  디 렉 터 리 에 있 는 프로필 만 사용자 가 접근 할 수 있 습 니 다. 하지만 파일 을 두 어도 됩 니 다.  sites-available  디 렉 터 리 아래 에 파일 을 저장 하거나 링크 를 만 드 는 데 사용 합 니 다.
정적 서버 설정
Nginx 설정 파일 은 자신 만 의 형식 을 가지 고 있 습 니 다. 좋 은 소식 은 파일 형식 이 상당히 간단 합 니 다. CSS 파일 처럼 보 입 니 다. 변수 이름 을 지정 한 다음 괄호 안에 명령 을 작성 합 니 다. 맨 위 는?  server  ,코드:
server {

}

괄호 안에 서 는 CSS 를 쓰 는 것 처럼 키 값 을 맞 추고 점 수 를 연결 하거나, sas 의 문법 과 같 으 며, 내장 코드 블록 을 추가 할 수 있 습 니 다. 뒤의 두 가지 스타일 의 코드 는 모두 사용 할 수 있 고, 쉽게 이해 할 수 있 습 니 다.
여기에 추가 할 수 있 는 키 쌍 과 코드 블록 (본 튜 토리 얼 뒤에 우 리 는 그것 을 명령 이 라 고 부른다)여러 가지 가 있 습 니 다. 공식 문서 로 이동 하여 구체 적 으로 볼 수 있 습 니 다. 기본 적 인 서버 설정 은 중요 한 명령 만 파악 하면 됩 니 다. 저 는 뒤의 모든 명령 에 공식 ngnix 문 서 를 연결 할 것 입 니 다. 공식 문 서 는 nginx 를 깊이 이해 하 는 유일한 경로 입 니 다. 이 를 위해 서 는 어떻게 더 잘 사용 하 는 지 알 아야 합 니 다.
listen
서버 감청 포트 번 호 를 설명 합 니 다. rails 를 알 고 있다 면 로 컬 서버 의 기본 포트 가 3000 이라는 것 을 알 고 있 을 것 입 니 다. Roots 는 1111 포트 에서 실 행 됩 니 다. SSL 은 443 포트 에 있 습 니 다. 인터넷 의 기본 포트 는 80 이 므 로 url 에서 포트 가 정의 되 지 않 으 면 기본 값 은 80 입 니 다. 온라인 서버 를 실행 할 가능성 이 높 기 때문에 80 포트 로 정의 하 는 것 이 좋 습 니 다. 코드 는 다음 과 같 습 니 다.
server {
    listen 80;    
}

기본 포트 에 주의 하 십시오. 엄 밀 히 말 하면 필요 한 것 은 아니 지만 전체 프로 세 스에 대해 충분히 알 수 있 도록 첫 번 째 단 계 를 마 쳤 습 니 다. 다음 server name 에 들 어 갑 니 다.
server_name
server name 은 url 주소 와 일치 하 는 데 사 용 됩 니 다. nginx 를 통 해 요청 하면 url 을 보고 찾 습 니 다.  server_name  세 션 입 니 다. 사이트 주소 가  http://xvfeng.me 그럼 너의  server_name  당연히  xvfeng.me  . 도 메 인 이름 을 분석 할 때 A 기록 을 사용 하고 서버 를 통 해 가리 키 면  http://snargles.com  , 너 는 다른 것 을 추가 할 수 있다.  server  코드  server_name  가리키다  snargles.com 이 코드 는 이 도 메 인 이름 에서 온 요청 과 일치 합 니 다.
이 기능 은 매우 강력 합 니 다. 이것 은 하나의 nginx 프로필 에서 수많은 사이트, 심지어 서로 다른 도 메 인 이름 의 사 이 트 를 위탁 관리 할 수 있다 는 것 을 의미 합 니 다. 당신 이 해 야 할 일 은 A 기록 을 설정 하고 가상 컴퓨터 가 있 는 IP 를 가리 키 는 것 입 니 다. 그 다음 에 다른 nginx 서버 설정 을 설정 하 는 것 입 니 다.
겨냥 하 다  server_name  두 가지 주목 할 점 이 있 습 니 다. 우선 하위 도 메 인 이름 을 설정 할 수 있 습 니 다. 일치 하고 싶다 면 http://test.example.com ,설정 이 아주 간단 합 니 다. 심지어 완전히 다른 응용 프로그램 을 가리 킬 수도 있 습 니 다. 두 번 째 는 마스크 를 사용 할 수 있 습 니 다. 즉,  *  또는 경로 와 일치 합 니 다. 이 기능 은 매우 강력 합 니 다. 다음은 server name 부터 example.com 까지 간단하게 설정 합 니 다. .
server {
    listen 80;
    server_name example.com;
}

나 이 스. 이제 설정 을 더 하면 서버 가 작 동 할 수 있 습 니 다.
root
이것 은 정적 사 이 트 를 위탁 관리 하 는 가장 중요 한 부분 입 니 다. html 와 css 파일 을 위탁 관리 하려 면 루트 부분 에서 정의 해 야 할 것 은 이 파일 들 이 저장 하 는 경로 입 니 다. 저 는 파일 을 두 는 것 을 좋아 합 니 다.  /var/www  디 렉 터 리 아래 에 있 기 때문에 폴 더 를 만 듭 니 다. 사용 합 니 다.  mkdir  창설  /var/www/example  디 렉 터 리, 공백 만 들 기  index.html  파일, hello World 와 같은 단락 을 마음대로 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
server {
    listen 80;
    server_name example.com;
    root /var/www/example;
}

기본 변수 설정 이 완료 되 었 습 니 다. 다음 설정 경로 입 니 다.
location
위 치 는 두 개의 인 자 를 받 아들 입 니 다. 하나의 문자열 이나 정규 코드 입 니 다. 문자열 이나 정규 는 특정한 디 렉 터 리 와 일치 합 니 다. 사용자 가 접근 할 수 있 도록 하려 면  example.com/whaterver  특정 페이지 에 접근 하려 면  whatever  uri 주소 로 설정 합 니 다. 루트 디 렉 터 리 에 만 접근 할 수 있 기 때문에 추가 만 하면 됩 니 다.  /  됐 습 니 다. 내용 은 잠시 비어 있 고 나중에 설명 하 겠 습 니 다.
server {
    listen 80;
    server_name example.com;
    root /var/www/example;

    location / {

    }
}

첫 번 째 매개 변 수 는 여러 가지 쓰기 방법 이 있 습 니 다. 위 에서 제시 한 링크 를 참고 할 수 있 습 니 다. 상기 블록 에서 우 리 는 결과 페이지 를 가리 키 는 경로 가 필요 합 니 다. 주의 하 십시오.  /  모든 url 주소 와 일치 합 니 다. 여기에서 정규 로 해석 되 기 때 문 입 니 다. 정확 한 문자열 만 일치 하려 면 앞 에 등 호 를 추가 하 십시오. 다음 과 같이 쓰 십시오.
location = / { ... }

현재 우 리 는 이전의 코드 를 완성 해 야 합 니 다. 블록 에 다른 명령 을 추가 하여 이름 을 불 러 올 수 있 습 니 다.  try_files  파일 입 니 다. Try fiels 는 루트 디 렉 터 리 에서 찾 을 수 있 는 첫 번 째 결 과 를 불 러 옵 니 다. 정적 서버 에 서 는 찾 고 싶 습 니 다.  /  그리고 whatever 파일 을 따라 갑 니 다. 예 를 들 어...  whatever.html. 사선 뒤에 아무런 내용 이 없 으 면 찾 습 니 다.  index.html. 위 에 제 시 된 문서 링크 에서 이 옵션 의 흡수 관 계 를 어떻게 설정 하 는 지 에 대한 더 많은 소 개 를 찾 을 수 있 습 니 다. 여기 서 우 리 는 간단 한 설정 만 쓸 수 있 습 니 다.
server {
    listen 80;
    server_name example.com;
    root /var/www/example;

    location / {
        try_files $uri $uri/ /index.html;    
    }
}

위 에 이상 할 수도 있어.  $url  어디서 왔 습 니까? 사실은 nginx 가 제공 합 니 다. 요청 이 있 을 때마다 nginx 는 일련의 변 수 를 생 성 합 니 다. 이 변 수 는 요청 에 관 한 정 보 를 저장 합 니 다. 여기 있 는 uri 는 우리 가 알 아야 할 내용 중 하나 입 니 다.
  •   http://example.com  의 요청 을 받 았 습 니 다.
  • nginx 에서 server 세 션 코드 를 찾 았 습 니 다.  server_name  ... 을 위 하여  example.com  ,요청 을 처리 하기 위해 사용 하기
  • nginx 는 임의의 요청 과 일치 합 니 다. 여기 있 기 때 문 입 니 다.  /  루트 이름 아래 의 임의의 내용 과 일치 합 니 다.
  • 일치 하 는 location 코드 에서 nginx 는 파일 을 불 러 오 려 고 시도 하기 시 작 했 습 니 다. 우선 이름 없 는 파일 을 찾 습 니 다. 이름 없 는 파일 과 일치 하기 때문에 찾 을 수 없습니다. 이 어 이름 없 는 디 렉 터 리 를 찾기 시 작 했 지만 찾 을 수 없습니다. 마지막 으로 루트 디 렉 터 리 아래 를 찾 아 불 러 옵 니 다.  /index.html  。

  • 다음은 이름 을 추가 하면  test.html  루트 디 렉 터 리 로 파일 접근  http://example.com/test.html. 직접 해 보면 알 수 있어 요.
    설정 환경 을 임의로 바 꾸 려 고 시도 할 수 있 습 니 다. 예 를 들 어 carrot. is 라 는 사이트 에 서 는 사용자 가 어떤 파일 을 방문 하고 추가 하지 않 았 습 니 다.  .html  접미사 일 때 try files 도 찾 습 니 다.  $uri.html  해당 결과 와 일치 합 니 다. 따라서 방문 http://carrot.is.about 화해시키다  http://carrot.is/about.html  같은 파일 을 얻 을 수 있 습 니 다. 설정 파일 을 설정 하 는 상상력 을 충분히 발휘 할 수 있 습 니 다.
    시작 서비스
    우리 가 한 일 을 정리 해 보 자. 우선 추가 했다.  server  nginx 가 실 행 될 때 옵션 을 찾 습 니 다.  /etc/sites-enabled  디 렉 터 리 에 있 는 모든 프로필 은 해당 내용 을 표시 하 는 데 사 용 됩 니 다. 하지만 잠시 만 요. 결 과 를 바로 얻 을 수 없 을 수도 있 습 니 다. nginx 는 변경 사항 을 모 르 기 때 문 입 니 다. nginx 가 새 프로필 을 제대로 읽 을 수 있 도록 서버 를 다시 시작 하고 다음 명령 을 실행 해 야 합 니 다.
    service nginx reload
    

    여기  service  명령 은 실제로 설정 파일 의 내용 을 호출 했 습 니 다. 모두 사용 되 고 있 습 니 다.  apt  시 생 성.  /etc/init.d/nginx reload  .
    다음은 서버 IP 주 소 를 방문 하면 원 하 는 페이지 를 얻 을 수 있 습 니 다.
    Mac OS X 참고 문서: Mac OS X Mountain Lion With Homebrew 에 Nginx 설치
    원본 링크: http://carrot.is/coding/nginx_introduction
    전재 출처 를 밝 혀 주 십시오: http://xvfeng.me/posts/Nginx-for-developers/

    좋은 웹페이지 즐겨찾기