nginx 가상 호스트 vhost 설정 방법 상세 설명
가상 호스트 란 몇 개의 서로 다른 url 주 소 를 통 해 nginx 환경 에 도달 할 수 있 고 서로 다른 url 에 대해 처리 하 는 논리 가 다르다 는 것 을 말한다.nginx 는 가상 호스트 를 지원 하지만 브 라 우 저 등 클 라 이언 트 는 모 르 기 때문에 가상 호스트 의 몇 개의 주 소 는 nginx 가 있 는 ip 주 소 를 가리 키 고 가상 호스트 기능 이 정상 적 입 니 다.
환경.
시스템 환경: CentOS 6.7
nginx version: nginx/1.8.1
계획
예 를 들 어 프로필 은:
/opt/nginx/conf/nginx.conf
http {} 의 마지막 에 다음 줄 과 같이 추가 합 니 다:
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 설정 에 관 한 모든 내용 입 니 다. 본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다. 궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.