지혜를 구하고 있으니 도와주세요... 라우터/웹 서버/dnsmasq 서버 역할을 하는 가상 머신이 있습니다. IP: 192.168.100.1. 클라이언트로 다른 컴퓨터가 있습니다.
서버에는 포트 80에서 포트 8081로 모든 트래픽을 리디렉션하는 IPTables 규칙이 있습니다.
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8081
또한 서버에 이름 기반 가상 호스트를 만들고 다음 구성을 사용하여 포트 8081에서 수신 대기했습니다.
<VirtualHost *:8081>
RewriteEngine On
RewriteRulle .* http://cpt.haustor.org [R,L]
ServerName haustor.org
ServerAlias cpt.haustor.org
DocumentRoot /var/opt/mypage
<Directory /var/opt/mypage>
DirectoryIndex index.html
Require all granted
Options Indexes FollowSymLinks Includes
</Director>
도메인 haustor.org 및 하위 도메인 cpt.haustor.org는 서버 시스템에서 로컬로 호스팅되며 /etc/hosts 파일에 존재합니다.
192.168.100.1 cpt.haustor.org haustor.org
클라이언트는 웹 서버의 IP(192.168.100.1)를 확인할 수 있습니다. 클라이언트에서 Dig를 발행합니다.
root@captivo:~# dig cpt.haustor.org
; <<>> DiG 9.9.5-9+deb8u2-Debian <<>> cpt.haustor.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41972
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;cpt.haustor.org. IN A
;; ANSWER SECTION:
cpt.haustor.org. 0 IN A 192.168.100.1
;; Query time: 1 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Sun Aug 16 22:28:43 CEST 2015
;; MSG SIZE rcvd: 60
이 관점에서는 모든 것이 괜찮아 보이지만 Konqueror에서 URL에 액세스하려고 하면 순환 링크가 있다는 오류 페이지가 나타납니다. 솔직히 이 문제를 해결하는 방법을 모르겠습니다. 현재 저는 Debian 8, Apache 2.4.10 및 dnsmasq 2.72를 사용하고 있습니다.
이 문제를 해결하도록 도와주세요.
PS 동일한 구성이 CentOS 6에서 문제 없이 실행됩니다.
BR, 콘텐츠
고쳐 쓰다:
로그를 살펴보면 페이지가 실제로 동시에 여러 번 호출되고 있음을 알 수 있습니다.
root@captivo:~# cat /var/log/apache2/captivo-custom.log
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 531
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 534
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 533
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 533
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 533
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 533
192.168.100.115 - - [16/Aug/2015:22:49:19 +0200] "GET / HTTP/1.1" 302 533
root@captivo:~#
답변1
분명히 RewriteRule
무엇이든 일치하면 루프가 발생합니다. 비활성화하십시오.
단순히 리디렉션하고 싶다면http://haustor.org/도착하다http://cpt.haustor.org/<VirtualHost>
, 각 가상 호스트에 대해 선언됩니다.
<VirtualHost *:8081>
ServerName haustor.org
Redirect / http://cpt.haustor.org/
</VirtualHost>
<VirtualHost *:8081>
ServerName cpt.haustor.org
DocumentRoot /var/opt/mypage
<Directory /var/opt/mypage>
DirectoryIndex index.html
Require all granted
Options Indexes FollowSymLinks Includes
</Directory>
</VirtualHost>