Centos 에서 Nginx 설치 및 설정

6914 단어
Nginx 는 경량급 웹 서버 이자 역방향 프 록 시 서버 다.Apache, lighttpd 에 비해 메모리 가 적 고 안정성 이 높 은 장점 을 가진다.그것 의 가장 일반적인 용 도 는 역방향 대리 서 비 스 를 제공 하 는 것 이다.
설치 하 다.
Centos 에서 yum 소스 는 nginx 의 설 치 를 제공 하지 않 고 yum 소스 를 전환 하 는 방법 으로 설 치 를 얻 을 수 있 습 니 다.현재 많은 centos 7 시스템 이 이 몇 개의 라 이브 러 리 를 가지 고 있 기 때문에 설치 하기 전에 로 컬 이 이미 존재 하 는 지 확인 할 수 있 습 니 다.존재 하면 네 번 째 단계 로 바로 이동 할 수 있 습 니 다.설치 패 키 지 를 사용 하여 컴 파일 하여 설치 해 야 합 니 다. 다음 과 같 습 니 다.다음 명령 은 루트 권한 으로 실행 되 어야 합 니 다:
먼저 필요 한 라 이브 러 리 를 설치 합 니 다 (nginx 에서 gzip 모듈 은 zlib 라 이브 러 리 가 필요 합 니 다. rewrite 모듈 은 pcre 라 이브 러 리 가 필요 합 니 다. ssl 기능 은 openssl 라 이브 러 리 가 필요 합 니 다).설치 디 렉 터 리 로 / usr / local 을 선택 하고 아래 의 구체 적 인 버 전 번 호 는 실제 에 따라 변 경 됩 니 다.
1. PCRE 라 이브 러 리 설치
$ cd /usr/local/
$ sudo wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
$ sudo tar -zxvf pcre-8.36.tar.gz
$ cd pcre-8.36
$ sudo ./configure
$ sudo make
$ sudo make install

2. zlib 라 이브 러 리 설치
$ cd /usr/local/ 
$ sudo wget http://zlib.net/zlib-1.2.8.tar.gz
$ sudo tar -zxvf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ sudo ./configure
$ sudo make
$ sudo make install

3. ssl 설치
$ cd /usr/local/
$ sudo wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
$ sudo tar -zxvf openssl-1.0.1j.tar.gz
$ sudo ./config
$ sudo make
$ sudo make install

4. nginx 설치
$ cd /usr/local/
$ sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ sudo tar -zxvf nginx-1.8.0.tar.gz
$ cd nginx-1.8.0  
$ sudo ./configure --prefix=/usr/local/nginx  #              ,  
$ sudo make
$ sudo make install

설치 패 키 지 를 사용 하여 컴 파일 한 위 에 있 는 몇 개의 의존 도 는 -- prefix 뒤에 다음 명령 을 받 아야 합 니 다.
--with-pcre=/usr/local/pcre-8.36    pcre-8.36      。
--with-zlib=/usr/local/zlib-1.2.8    zlib-1.2.8      。

5. 먼저 설정 파일 이 올 바른 지 테스트 합 니 다: $/ usr / local / nginx / sbin / nginx - t
문제 없 이 시작 할 수 있 습 니 다: $/ usr / local / nginx / sbin / nginx
시작 성공 여 부 를 확인 합 니 다:
브 라 우 저 를 열 어 이 기기 의 IP 에 접근 합 니 다. 브 라 우 저 에 Welcome to nginx 가 나타 나 면!Nginx 가 설치 되 어 실행 에 성공 했다 는 뜻 입 니 다.
부분 명령 은 다음 과 같 습 니 다.
재 부팅: $/ usr / local / nginx / sbin / nginx – s reload
정지: $/ usr / local / nginx / sbin / nginx – s stop
설정 파일 이 정상 인지 테스트: $/ usr / local / nginx / sbin / nginx – t
강제 종료: $pkill nginx
배치 하 다.
위 설치 방법 nginx 설정 파일 은
/usr/local/nginx/conf/nginx.conf

Nginx 프로필 의 일반적인 구 조 는 밖에서 안 으로 'http', 'server', 'location' 등 이 있 습 니 다. 결 성 된 계승 관 계 는 밖에서 안 으로 입 니 다. 즉, 내부 블록 은 외부 블록 의 값 을 자동 으로 가 져 와 결 성 된 값 으로 합 니 다.
Server
요청 을 받 은 서버 는 서로 다른 요청 을 규칙 에 따라 다른 백 엔 드 서버 에 전송 해 야 합 니 다. nginx 에 서 는 가상 호스트 (server) 개념 을 구축 하여 서로 다른 서비스 설정 을 격 리 할 수 있 습 니 다.
server {
    listen       80;
    server_name  localhost;
    root   html;
    index  index.html index.htm;
}

예 를 들 어 우리 가 가지 고 노 는 두 개의 키 항목 인 passport 와 wan 은 nginx 설정 파일 에서 두 개의 server 를 설정 할 수 있 습 니 다. server name 은 각각 passport. bigertech. com 과 wan. bigertech. com 입 니 다.이렇게 하면 서로 다른 url 요청 은 nginx 에 해당 하 는 설정 에 대응 하여 서로 다른 백 엔 드 서버 에 전 송 됩 니 다.
여기 listen 은 감청 포트, servername 은 IP 나 도 메 인 이름 을 지정 하 는 데 사 용 됩 니 다. 여러 도 메 인 이름 은 통 일 된 규칙 에 따라 빈 칸 으로 나 눌 수 있 습 니 다. index 는 방문 하 는 기본 홈 페이지 주 소 를 설정 하 는 데 사 용 됩 니 다. root 명령 은 가상 호스트 의 웹 페이지 와 디 렉 터 리 를 지정 하 는 데 사 용 됩 니 다. 이 곳 은 상대 적 인 주소 일 수도 있 고 절대 주소 일 수도 있 습
일반적으로 nginx. conf 에 여러 개의 server 를 설정 하여 서로 다른 요청 을 설정 할 수 있 습 니 다.이렇게:
server {
    listen       80;
    server_name  host1;
    root   html;
    index  index.html index.htm;
}
server {
    listen       80;
    server_name  host2;
    root   /data/www/html;
    index  index.html index.htm;
}

그러나 server 가 2 개 를 넘 으 면 가상 호스트 에 대한 설정 을 다른 파일 에 두 고 메 인 프로필 nginx. conf 에 include 명령 을 포함 하 는 것 을 권장 합 니 다.관리 에 더욱 편리 하 다.
include vhosts/*.conf;

vhosts 파일 을 다 포함 시 킬 수 있 습 니 다.
Localtion
모든 url 요청 에 대응 하 는 서비스 입 니 다. nginx 는 퍼 가기 나 로 컬 파일 경 로 를 처리 하거나 다른 서버 의 서비스 경 로 를 처리 합 니 다.이 경로 의 매 칭 은 location 을 통 해 이 루어 집 니 다.서버 를 도 메 인 이름 에 대응 하 는 설정 으로 사용 할 수 있 으 며, location 은 도 메 인 이름 아래 에서 더 정교 한 경 로 를 설정 합 니 다.
위의 예 를 들 어 루트 와 index 명령 을 하나의 location 에 넣 을 수 있 습 니 다. 이 location 에 일치 할 때 만 루트 뒤의 내용 에 접근 할 수 있 습 니 다.
    location / {
        root   /data/www/host2;
        index  index.html index.htm;
    }

위치 일치 규칙
~                   ,     
~*              ,      
^~    ^~        ,       ,      ,       ,        
=                

일치 하 는 예:
location  = / {
  #    "/".
  [ configuration A ] 
}
location  / {
  #       ,         "/"  
  #                       
  [ configuration B ] 
}
location ^~ /images/ {
  #       /images/      ,        location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  #     gif, jpg, or jpeg     . 
  #      /images/         [Configuration C]  .   
  [ configuration D ] 
}

  :
/ ->   configuration A
/documents/document.html ->   configuration B
/images/1.gif ->   configuration C
/documents/1.jpg ->   configuration D

정적 파일 맵
파일 에 접근 하 는 설정 은 주로 루트 와 aliasp 's 두 명령 이 있 습 니 다.이 두 명령 의 차 이 는 헷 갈 리 기 쉽다.
alias
alias 뒤꿈치 의 지정 디 렉 터 리 가 정확 하고 끝 에 / 를 추가 해 야 합 니 다.
    location /c/ {
        alias /a/;
    }

하면, 만약, 만약...http://location/c방문 한 것 은 / a / 디 렉 터 리 의 사이트 정보 입 니 다.
root
루트 뒤꿈치 의 지정 디 렉 터 리 는 상위 디 렉 터 리 이 며, 이 상위 디 렉 터 리 에는 location 후 지정 한 이름과 같은 이름 의 디 렉 터 리 가 있어 야 합 니 다.
    location /c/ {
        root /a/;
    }

이 때 방문 사이트http://location/c방문 한 것 은 / a / c 디 렉 터 리 의 사이트 정보 입 니 다.
이 디 렉 터 리 를 펼 칠 필요 가 있다 면 이 location 의 끝 에 "autoindex on;" 을 추가 하면 됩 니 다.
전달 하 다
설정 은 매우 간단 합 니 다. 예 를 들 어 저 는 모든 요 구 를 진정 으로 서 비 스 를 제공 하 는 기계 의 8001 포트 로 옮 기 려 고 합 니 다. 이렇게 하면:
location / {
    proxy_pass 172.16.1.1:8001;
}

이렇게 host 에 접근 할 때 모두 172.16.1.1 의 8001 포트 로 전송 되 었 다.
부하 균형
upstream myserver; {
    ip_hash;    
    server 172.16.1.1:8001;
    server 172.16.1.2:8002;
    server 172.16.1.3;
    server 172.16.1.4;
}
location / {
    proxy_pass http://myserver;
}

우 리 는 upstream 에서 기 계 를 지정 하고 이 그룹 을 my server 라 고 명명 합 니 다. 그러면 proxypass 에서 my server 라 는 upstream 으로 요청 을 옮 기 면 네 대의 기계 의 역방향 대리 에 부하 균형 을 이 룰 수 있 습 니 다.그 중의 iphash 는 사용자 의 ip 주소 에 따라 균형 잡 힌 방식 을 가리 키 고 있 습 니 다.그 밖 에 폴 링, 지정 가중치 폴 링, fair, url 도 있다.hash 몇 가지 스케줄 링 알고리즘.
총결산
이상 은 nginx 를 통 해 정적 파일 전송, 역방향 에이전트 와 부하 균형 을 실현 하 는 가장 간단 한 설정 입 니 다.nginx 에서 모든 기능 은 모듈 을 통 해 이 루어 집 니 다. 예 를 들 어 upstream 을 설정 할 때 upstream 모듈 을 사용 합 니 다. server 와 location 은 http core 모듈 이 고 다른 것 은 흐름 제어 limt 모듈, 메 일의 mail 모듈, https 의 ssl 모듈 도 있 습 니 다.그들의 설정 은 모두 nginx 모듈 문서 에서 상세 한 설정 설명 을 찾 을 수 있 는 것 과 유사 합 니 다.

좋은 웹페이지 즐겨찾기