한 서버에서 서로 다른 도메인 이름에 대해 서로 다른 사이트를 실행하고 싶을 때가 있습니다. 예를 들어 www.siteA.com은 블로그 역할을 하고 www.siteB.com은 포럼 역할을 합니다. 두 도메인 이름의 IP를 서버로 확인할 수 있지만 Nginx의 루트 디렉터리에서 두 개의 서로 다른 웹사이트를 동시에 실행할 수는 없습니다. 이때 가상 디렉터리를 사용해야 합니다. 블로그를 "/home/user/www/blog" 아래에 두고 포럼을 "/home/user/www/forum" 아래에 둔다고 가정해 보겠습니다. 이제 구성을 시작합니다.
Nginx 구성 디렉터리에 "vhost" 디렉터리를 만듭니다. 이 예에서는 Nginx가 기본적으로 설치되어 있고 구성 디렉터리가 "/etc/nginx"
$ sudo mkdir /etc/nginx/vhost
siteA
$의 구성 파일 만들기 sudo vi /etc/nginx /vhost/vhost_siteA.conf
다음 구성 정보를 입력하세요
server { listen 80; # 监听端口 server_name www.siteA.com siteA.com; # 站点域名 root /home/user/www/blog; # 站点根目录 index index.html index.htm index.php; # 默认导航页 location / { # WordPress固定链接URL重写 if (!-e $request_filename) { rewrite (.*) /index.php; } } # PHP配置 location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
siteA와 마찬가지로 siteB의 구성 파일을 생성하세요. 둘 사이의 유일한 차이점은 "server_name"과 "root" 디렉터리입니다
$ sudo vi /etc /nginx/vhost/vhost_siteB.conf
server { ... server_name www.siteB.com siteB.com; # 站点域名 root /home/user/www/forum; # 站点根目录 ... }
nginx.conf 파일 열기
sudo vi /etc/nginx/nginx.conf
"http {} 끝에 가상 디렉터리의 구성 파일을 추가합니다. " section
http {
...
include /etc/nginx/vhost/*.conf;
}
Nginx 서비스 다시 시작
$ sudo service nginx restart
이제 www.siteA.com 및 www를 방문하세요. .siteB.com을 사용하면 브라우저가 다른 사이트를 열게 됩니다
액세스 비활성화 팁
Nginx 루트 디렉터리가 "/home/user/www"에 설정되어 있으면 다른 사람이 "http: //IP 주소/블로그" 또는 "http://IP 주소/포럼"을 사용하여 사이트에 액세스하려면 가장 쉬운 방법은 IP 주소 액세스를 비활성화하는 것입니다. 방법은 다음과 같습니다.
Nginx 웹사이트 기본 구성 파일을 열고 먼저 백업하는 것을 잊지 마세요
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak
$ sudo vi /etc/nginx/sites -available/default
모든 콘텐츠를 삭제하고 다음 구성만 남겨둡니다
server { listen 80 default_server; server_name _; return 404; }
Nginx를 다시 시작하면 다른 사람이 해당 IP 주소를 통해 웹사이트에 접근할 수 없습니다
그렇지 않으면 IP 주소가 전체 디렉토리에 액세스하는 것을 금지하고 싶은 경우, 다른 사람이 해당 IP를 통해 전체 디렉토리에 액세스하는 것을 방지하려는 경우 블로그 및 포럼을 방문하십시오. 그런 다음 "/blog" 및 "/forum"에 대한 디렉토리 액세스를 금지해야 합니다.
위와 동일하게 Nginx 웹사이트의 기본 구성 파일을 엽니다. 먼저 백업하는 것을 잊지 마세요
"서버 { }" 섹션에 다음 구성을 추가하세요
location ^~ /blog/ { deny all; } location ^~ /forum/ { deny all; }
Nginx를 다시 시작하세요