>  기사  >  Nginx에서 여러 사이트를 구성하는 방법

Nginx에서 여러 사이트를 구성하는 방법

无忌哥哥
无忌哥哥원래의
2018-06-27 15:26:263031검색

한 서버에서 서로 다른 도메인 이름에 대해 서로 다른 사이트를 실행하고 싶을 때가 있습니다. 예를 들어 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를 다시 시작하세요

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.