nginx 가상 호스트 vhost 설정 방법 상세 설명

4298 단어
머리말
가상 호스트 란 몇 개의 서로 다른 url 주 소 를 통 해 nginx 환경 에 도달 할 수 있 고 서로 다른 url 에 대해 처리 하 는 논리 가 다르다 는 것 을 말한다.nginx 는 가상 호스트 를 지원 하지만 브 라 우 저 등 클 라 이언 트 는 모 르 기 때문에 가상 호스트 의 몇 개의 주 소 는 nginx 가 있 는 ip 주 소 를 가리 키 고 가상 호스트 기능 이 정상 적 입 니 다.
환경.
     시스템 환경: CentOS 6.7
     nginx version: nginx/1.8.1
계획
예 를 들 어 프로필 은: /opt/nginx/conf/nginx.confhttp {} 의 마지막 에 다음 줄 과 같이 추가 합 니 다:

include vhosts/*.conf;

즉, 주 프로필 은 / opt / nginx / conf / vhosts / 디 렉 터 리 에 있 는 모든 *. conf 의 하위 프로필 을 포함 합 니 다.[비고: vhosts 디 렉 터 리 는 수 동 으로 만들어 야 합 니 다]
하위 프로필 을 추가 한 후 /opt/nginx/sbin/nginx -t 을 통 해 프로필 의 정확성 을 확인 해 야 합 니 다.
예시
다음은 php 사이트 의 vhost 입 니 다:

vim www.domain.com.conf
server {
 listen 80;
 server_name www.domain.com;
 
 location ~ \.php$ {
 root  /opt/www;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
 location / {
 root  /opt/www;
 index  index.php;
 }
}

고급 특성
도 메 인 이름 기반 가상 호스트
Nginx 는 먼저 요청 을 처리 할 가상 호스트 를 선택 합 니 다. 예 를 들 어 다음 세 개의 가상 호스트 가 모두 *: 80 포트 에 감청 되 어 있 습 니 다.

server {
 listen 80;
 server_name example.org www.example.org;
 ...
}

server {
 listen 80;
 server_name example.net www.example.net;
 ...
}

server {
 listen 80;
 server_name example.com www.example.com;
 ...
}

이 설정 에서 nginx 는 요청 한 "Host" 헤드 만 검사 하여 이 요청 을 어느 가상 호스트 에서 처리 해 야 할 지 결정 합 니 다.호스트 헤드 가 임의의 가상 호스트 와 일치 하지 않 거나 요청 에 호스트 헤드 가 전혀 포함 되 어 있 지 않 으 면 nginx 는 이 포트 를 정의 하 는 기본 가상 호스트 에 요청 을 나 누 어 줍 니 다.상기 설정 에서 첫 번 째 로 열 거 된 가상 호스트 는 nginx 의 기본 가상 호스트 입 니 다. 이것 은 nginx 의 기본 행동 입 니 다.그리고 어떤 호스트 를 기본 가상 호스트 로 명시 적 으로 설정 할 수 있 습 니 다. 즉, "listen" 명령 에 "default" 을 설정 할 수 있 습 니 다.server "인자:

server {
 listen 80 default_server;
 server_name example.net www.example.net;
 ...
}

도 메 인 이름과 IP 가 혼 합 된 가상 호스트
다음 설정 에서 몇 개의 가상 호스트 가 서로 다른 주소 에서 감청 합 니 다.

server {
 listen 192.168.1.1:80;
 server_name example.org www.example.org;
 ...
}

server {
 listen 192.168.1.1:80;
 server_name example.net www.example.net;
 ...
}

server {
 listen 192.168.1.2:80;
 server_name example.com www.example.com;
 ...
}

이 설정 에서 nginx 는 먼저 요청 한 IP 주소 와 포트 가 서버 설정 블록 에 있 는 listen 명령 설정 과 일치 하 는 지 테스트 합 니 다.이어서 nginx 는 요청 한 Host 헤드 가 이 서버 블록의 어떤 서버 와 일치 하 는 지 계속 테스트 합 니 다name 의 값.호스트 이름 을 찾 지 못 하면 nginx 는 이 요청 을 기본 가상 호스트 에 맡 깁 니 다.예 를 들 어 192.168.1.1: 80 포트 에서 받 은 www. example. com 방문 요청 은 192.168.1.1: 80 포트 의 기본 가상 호스트 로 처 리 됩 니 다. 이 예 는 첫 번 째 서버 입 니 다. 이 포트 에 www. example. com 이라는 가상 호스트 가 정의 되 지 않 았 기 때 문 입 니 다.
기본 서버 는 감청 포트 의 속성 이기 때문에 서로 다른 감청 포트 는 서로 다른 기본 서버 를 설정 할 수 있 습 니 다.

server {
 listen 192.168.1.1:80;
 server_name example.org www.example.org;
 ...
}

server {
 listen 192.168.1.1:80 default_server;
 server_name example.net www.example.net;
 ...
}

server {
 listen 192.168.1.2:80 default_server;
 server_name example.com www.example.com;
 ...
}

server_name 일치 순서
1. 정확 한 servername 일치, 예:

server {
 listen 80;
 server_name domain.com www.domain.com;
 ...
}

2. * 마스크 로 시작 하 는 문자열:

server {
 listen 80;
 server_name *.domain.com;
 ...
}

3. * 마스크 로 끝 나 는 문자열:

server {
 listen 80;
 server_name www.*;
 ...
}

4. 정규 표현 식 과 일치:

server {
 listen 80;
 server_name ~^(?.+)\.domain\.com$;
 ...
}

총결산
이상 은 nginx 가상 호스트 vhost 설정 에 관 한 모든 내용 입 니 다. 본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다. 궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기