외부에서 액세스할 수 있는 로컬 컴퓨터에 호스팅된 Apache 사이트 만들기

외부에서 액세스할 수 있는 로컬 컴퓨터에 호스팅된 Apache 사이트 만들기

를 통해 액세스할 수 있는 LAN에서 Moodle 사이트를 호스팅하는 작동 중인 apache2 서버가 있습니다 http://192.x.x.x/moodle. 또한 라이브 IP 주소를 사용하여 인터넷과 LAN 사이에 Linux 서버가 있습니다 124.x.x.x. 인터넷에서 무들 사이트에 접근할 수 있게 만들고 싶습니다. 가능합니까?

로컬 apache2 서버에는 서비스를 제공할 수 있는 작동 구성이 있습니다 moodle.domain.com. 라이브 Linux 서버에는 apache2 서버 호스팅도 있습니다 domain.com. 둘 다 Debian Linux를 실행 중입니다.

라이브 Linux 서버의 파일에서 moodle.domain.com리디렉션 을 시도했지만 여전히 외부에서 액세스할 때 얻는 결과는 다음과 같습니다 .192.x.x.x/etc/hostsdomain.commoodle.domain.com

외부에서 접속할 때 먼저 Windows 노트북의 호스트 파일을 구성하여 moodle.domain.comLinux 서버의 라이브 IP 주소로 리디렉션합니다.

내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

라이브 Linux Apache 서버에서 Apache 역방향 프록시를 구현하여 작동하게 했습니다.

동일한 솔루션을 찾는 사람들을 위해 다음은 내 내용의 일부입니다 /etc/apache2/sites-enabled/000-default.conf.

<VirtualHost *:80>
        ServerName moodle.domain.com
        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPass / http://10.5.1.100:8080/
        ProxyPassReverse / http://10.5.1.100:8080/
</VirtualHost>

실제 Moodle 사이트를 호스팅하는 로컬 Apache 서버는 다음 포트에서 수신 대기해야 합니다 8080.

<VirtualHost *:8080>
    ServerAdmin webmaster@local
    DocumentRoot /srv/www/moodle
    ServerName moodle.domain.com
    ServerAlias moodle.domain.com
    <Directory /srv/www/moodle>
           #Allowoverride all    ###Uncomment if required
    </Directory>
</VirtualHost>

조정해야 할 또 다른 Moodle 관련 설정은 Moodle 구성 파일입니다 /srv/www/moodle/config.php.

$CFG->wwwroot = 'http://moodle.domain.com';

$CFG->wwwroot = 'http://10.5.1.100/moodle';Moodle은 처음에 설치 중에 이를 설정했습니다 . Moodle이 설치되어 있지 않다면 이 부분을 무시하세요.

답변2

시작하기 전에 이 방법을 사용하는 것이 가장 안전한 옵션이 아니라는 점을 이해하고 있는지 확인하고 싶습니다. 특히 라우터 포트를 개방하므로 방화벽에 대해 숙지하시기 바랍니다.

귀하는 동적 IP를 갖고 있기 때문에(아마도) 이를 귀하의 도메인에 간단히 바인딩할 수는 없습니다. 이는 귀하의 IP가 몇 시간마다 변경되기 때문입니다.

이 답변은 사용 가능한 가장 일반적인 라우터 옵션을 기반으로 합니다.

  1. 라우터 연결에서 Apache 서버를 찾고 포트 전달(80)을 활성화해야 합니다. 또는 수행 중인 작업을 이해하고 적절한 방화벽을 초기화한 경우 간단히 모든 라우터 포트를 열 수 있습니다(이 작업을 수행하지 않는 것이 좋습니다. 방화벽이 없는 경우)
  2. Dyn DNS와 같은 무료 DNS 서비스를 사용하세요(최신 라우터는 기본적으로 이 서비스를 지원합니다. 설정을 확인하고 계정을 설정하기만 하면 됩니다).
  3. 무료 DNS 하위 도메인을 만듭니다.
  4. 기본 도메인에서 DNS 규칙(CNAME)을 만듭니다. dyndns가 만든 하위 도메인을 가리킵니다. 예를 들면 무들.example.com -> trex-moodle.exampledyndns.com입니다.
  5. Apache를 구성하고 dyndns 하위 도메인을 추가하십시오.

라우터에서 무료 DNS를 사용하는 것이 가장 좋은 옵션입니다. 라우터는 몇 시간마다 IP를 교체하므로 이러한 서비스를 사용하는 경우 dyn DNS 도메인은 항상 집 IP 주소를 가리킵니다.

편집하다

첫 번째 설명과 관련하여 기본 Linux 서버에서 실행되는 nginx 프록시가 필요합니다. nginx는 domain.com동일한 네트워크의 다른 서버에서 호스팅되는 웹사이트와 무들.도메인.com을 호스팅하는 데 사용할 수 있습니다.

Linux 서버에서 무들 웹사이트에 접근할 수 있는지 확인하세요. (핑 IP 사용)

이제 nginx에서 다음과 같은 구성이 필요합니다:

server {
    listen       80;
    server_name domain.com;

        root /your/domain.com/path/goes/here ;
}

server {
    listen       80;
    server_name  moodle.trex.com;

    location / {
        proxy_pass http://192.X.X.X:80; #Your apache2 server local IP address
    }
}

이것이 작동하려면 Linux 서버와 apache2 서버가 모두 동일한 192.XXX 네트워크에 있어야 합니다.

관련 정보