No-IP에 ddns 하위 도메인을 등록했습니다. example.ddns.net
포트를 내 NGINX 웹 서버로 전달하는 라우터의 IP에 매핑되도록 No-IP를 구성했습니다. web1.example.ddns.net
을 가리키는 별도의 웹 서버를 호스팅하고 싶습니다 /var/www/web1
. 내가 모르는 것은 NGINX /var/www/web1
가 web1.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.net
No-IP를 사용하여 서버를 가리킵니다. 그렇지 않으면 누구도 해당 주소를 통해 서버에 접속할 수 없으므로 서버 구성은 중요하지 않습니다.
내가 모르는 것은 NGINX
/var/www/web1
가web1.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.net
web1.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.net
root
server_name
example.ddns.net
web1.example.ddns.net
첫 번째 서버 블록은 여전히 를 사용하므로
/var/www/example.ddns.net
파일을 저장할 위치에 대한 올바른 경로가 있는지 확인하세요example.ddns.net
.대체로 서버를 변경한 후에는 브라우저가 오래된 데이터를 다시 제공하지 않도록 브라우저 캐시를 지우는 것이 일반적으로 현명한 단계입니다.