NGINX 및 DDNS를 사용하여 하위 도메인을 구성하는 방법

NGINX 및 DDNS를 사용하여 하위 도메인을 구성하는 방법

No-IP에 ddns 하위 도메인을 등록했습니다. example.ddns.net 포트를 내 NGINX 웹 서버로 전달하는 라우터의 IP에 매핑되도록 No-IP를 구성했습니다. web1.example.ddns.net을 가리키는 별도의 웹 서버를 호스팅하고 싶습니다 /var/www/web1. 내가 모르는 것은 NGINX /var/www/web1web1.example.ddns.net. 내 서버를 구성하는 방법에 대해 자세히 설명해 줄 수 있는 사람이 있나요?

example.ddns.net다음은 이 구성 에 대한 내 구성입니다. /etc/nginx/sites-available/에 대한 링크가 있습니다 /etc/nginx/sites-enabled.

server {
        listen 80 default_server;
        listen [::]:80 default_server;
       
        root /var/www/example.ddns.net;

        server_name example.ddns.net;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

}

web1.example.ddns.net다음은 이 구성 에 대한 내 구성입니다. /etc/nginx/sites-available/에 대한 링크가 있습니다 /etc/nginx/sites-enabled.

server {
        listen 80;
        listen [::]:80;
       
        root /var/www/web1.example.ddns.net;

        server_name web1.example.ddns.net;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

}

이것이 제가 변경한 유일한 파일입니다. 다음 NGINX 서버는 Ubuntu Server에서 호스팅되며 SSH를 통해 서버에 액세스하고 별도의 컴퓨터를 통해 웹 페이지에 액세스하고 있습니다. 이 문제를 해결하는 방법에 대한 지침을 제공할 수 있는 사람이 있습니까?

답변1


다음 답변은 매우 기본적입니다. 그러니 당신이 이미 알고 있는 내용을 언급하더라도 용서해주세요. =)


No-IP: 에 DDNS 하위 도메인을 등록했습니다 example.ddns.net. [...] 나는 호스팅 web1.example.ddns.net하는 별도의 웹 서버를 갖고 싶습니다 /var/www/web1.

미리 말씀드리지만, 아직 수행하지 않았다면 ex를 만들어야 합니다. web1.example.ddns.netNo-IP를 사용하여 서버를 가리킵니다. 그렇지 않으면 누구도 해당 주소를 통해 서버에 접속할 수 없으므로 서버 구성은 중요하지 않습니다.

내가 모르는 것은 NGINX /var/www/web1web1.example.ddns.net.

실제로 필요한 것은 기본 서버 블록뿐입니다. NGINX 기본 예제에서 크리빙:

전. example.ddns.net

server {
        listen       80;
        server_name  example.ddns.net;
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/www/example.ddns.net;
            index  index.html index.htm;
        }

        # error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

전. web1.example.ddns.net

server {
        listen       80;
        server_name  web1.example.ddns.net;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/www/web1;
            index  index.html index.htm;
        }

        # error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

기본 지침

  • Ubuntu의 경우 이러한 서버 블록을 적절한 sites-available디렉터리(예: 및 /etc/nginx/sites-available/) 아래에 배치해야 합니다 .example.ddns.netweb1.example.ddns.net

  • sites-enabled예를 들어 (예: /etc/nginx/sites-enabled/) 에 대한 관련 심볼릭 링크를 만듭니다 .

    sudo ln -s /etc/nginx/sites-available/example.ddns.net /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/web1.example.ddns.net /etc/nginx/sites-enabled/
    

    또는 OS에서 권장하는 방법을 사용하세요.

  • NGINX에 구문 오류나 기타 문제가 발생하지 않았는지 확인하려면 주석에 제안된 대로 nginx -t(예: ) 실행하세요 .sudo nginx -t

  • ex를 사용하여 NGINX를 다시 시작합니다. sudo systemctl restart nginx.

노트

  • 위의 블록은 IPv6을 삭제합니다(테스트에는 필요하지 않을 가능성이 높습니다).

  • 이 예제 중 어느 것도 default_server.

  • 각각의 항목은 블록(예: 웹 사이트 루트 ) root에 배치됩니다 .location/

  • 위의 두 번째 서버 블록은 for (가 아닌 ) /var/www/web1로 사용됩니다 . 이는 귀하가 처음에 질문에 지정한 것이기 때문입니다. 어떤 경우든 명확히 하려면 실제 파일 시스템에 있는 디렉터리 구조와 일치해야 합니다. 즉, 실제로 ex라는 디렉터리(또는 이와 유사한)를 만들지 않는 한 을 미러링할 필요가 없습니다 . 그리고 .root/web1.example.ddns.netrootserver_nameexample.ddns.netweb1.example.ddns.net

  • 첫 번째 서버 블록은 여전히 ​​를 사용하므로 /var/www/example.ddns.net파일을 저장할 위치에 대한 올바른 경로가 있는지 확인하세요 example.ddns.net.

  • 대체로 서버를 변경한 후에는 브라우저가 오래된 데이터를 다시 제공하지 않도록 브라우저 캐시를 지우는 것이 일반적으로 현명한 단계입니다.

관련 정보