달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

Server.xml 에 내용 추가

 <Engine defaultHost="localhost" name="Catalina" jvmRoute="was-com">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> 
    <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> 

    <Manager className="org.apache.catalina.ha.session.BackupManager" /> 
    <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
        <Membership className="org.apache.catalina.tribes.membership.McastService" 
            address="228.0.0.4" 
            port="45564" 
            frequency="500" 
            dropTime="3000"/>
        <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
            address="auto"
            port="4000" 
            autoBind="10" 
            selectorTimeout="5000" 
            maxThreads="6"/> 
        <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
        </Sender> 
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/> 
    </Channel> 
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> 
    <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
</Cluster>
      

web.xml 내용 추가

<distributable/>

Posted by 타카스 류지
|

하나의 서버에 기본적으로 포트가 여러개 있지만

서브 도메인으로 포트마다 분기를 시키고 싶을때 프록시를 이용해서

분기가 가능


기본 

<VirtualHost *:*>

  ProxyPreserveHost On


  # Servers to proxy the connection, or;

  # List of application servers:

  # Usage:

  # ProxyPass / http://[IP Addr.]:[port]/

  # ProxyPassReverse / http://[IP Addr.]:[port]/

  # Example:

  ProxyPass / http://0.0.0.0:8080/

  ProxyPassReverse / http://0.0.0.0:8080/


  ServerName localhost

</VirtualHost>



활용법

conf/httpd.conf 를 열어서 내용 하단에 밑에 1줄 추가


<httpd.conf>주석제거

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

※ 없으면 conf.modules.d/00-proxy.conf  에 선언되어있는지 확인


include conf/vhost.conf 하단에 추가


그리고 나서 


conf/vhost.conf 열기(없으면 생성)


---------------------------------------------------------------------

#NameVirtualHost *:80   <-- 최신버전에서는 안넣어도되지만 안될시 주석 해제


<VirtualHost *:80> <---- IP : 80 >

    ProxyPreserveHost On

    ProxyRequests Off

    ServerName cjbox.tistory.com

    ServerAlias cjbox.tistory.com

    ProxyPass / http://127.0.0.1:포트/ retry=1 acquire=3000 timeout=600 Keepalive=On

    ProxyPassReverse / http://127.0.0.1:포트/

</VirtualHost>

---------------------------------------------------------------------

저장후 리스타트~ 끝



Posted by 타카스 류지
|

멀티 톰캣 인스턴스로 실행하기 (Multiple Tomcat Instances)

Facebook Server Side Architecture Group #SSAG
https://www.facebook.com/groups/serverside/
1. 필요성

.실무 프로젝트의 deploy 환경은  3가지(“개발“, “스테이징“, “상용“)로 구분 됩니다.
물론 프로젝트의 상황과 환경에 따라서 다소 차이는 있지만 대부분 위에 언급한
단계로 개발을 진행 합니다.

개발 단계“는 말그대로 “개발을 할수 있는 최소 환경” 입니다. 대부분 이단계에서
개발자들은 많은 시간을 보내고, 테스트도 제일 많이 합니다.

스테이징 단계“는 “기능 및 성능을 테스트 하기 위한 환경” 입니다. 실제로 서비스만
하지 않을뿐 “상용 단계“와 거의 동일 환경으로 구성되어 있습니다.
외부 연동 서버, 성능 테스트를 진행하며 “상용단계“를 위한 최종 검증의 환경이라고 할수 있습니다.

상용 단계” 는 실제로 서비스하고,  고객이 접속하는 환경을 말합니다.

이렇게 개발 환경이 다르기 때문에 당연히 서버 구축 요구 사항도 틀립니다.
예를 들면 “개발 환경” 같은 경우에는  “One Server, One Instance, Multiple Context“를
주로 사용합니다.

하지만 “스테이징 단계” 이상 부터는 아래의 요구 사항을 수용해야 합니다.

  • 하나의 서버에서 2개이상 WAS 버전이 구동 될수 있다.
  • 상위 버전 업그레이드가 용이해야 하며, 기존 서비스 변경은 최소화 해야 한다.
  • 서비스별 튜닝 설정 (WAS, JNDI, Http Connection)이 별도로 구성되어야 한다.
  • 하나의 인스턴스를 Shutdown 해도 다른 서비스에 영향이 없어야 한다.
  • 운영 관리 및 장애 대응에 신속하게 처리 해야 한다.

2. Big Picture

dfdTomcat 디렉토리는 아래의 그림과 같습니다.

  • lib : Tomcat Engine이 사용하는 외부 라이브러리 (.jar) 디렉토리
  • bin : Tomcat를 런하는 명령 스크립트 디렉토리
  • conf : Tomcat Web 서비스를 위한 설정 파일 디렉토리
  • logs : 로그 파일 디렉토리
  • temp : Tomcat Engine에서 사용하는 임시 파일 디렉토리
  • webapps : 웹 어플리케이션 deploy 디렉토리
  • work : JSP 파일이 서블릿으로 컴파일(.class)된 디렉토리

여기서 재미난 유추를 할수 있습니다. “자바 서버군 오픈소스” (특히 Apache Project)의
디렉토리 구조는 Tomcat과 매우 유사한 structure로 되어 있습니다.
대표적인 것이 “하둡” 입니다.
그외에 “Cassandra“, “Flume“, “ActiveMQ“등도 매우 유사 합니다.

Anyway, 사실 Tomcat Engine은  “lib“, “bin” 디렉토리만 사용 합니다.
반면, 실제 서비스를 담당하는 인스턴스들은
conf“, “logs“, “temp“, “webapps“, “work” 디렉토리를 사용 합니다.
여기서 잠시 용어를 정리 하자면 인스턴스라 함은 하나의
jvm“을 말합니다.

그렇기 때문에 아래와 같이 물리적으로 디렉토리를 분리함으로써 “멀티 인스턴스
환경을 구성을 할수 있습니다.

$CATALINA_HOME/bin/startup.sh” 실행하면 실제로 “catalina.sh“이 실행 됩니다.
catalina.sh“은 “CATALINA_HOME” 환경 변수를 통해서 “Tomcat Engine” 디렉토리를
찾고 기동을 위한 준비 합니다. 그리고  “CATALINA_BASE” 환경변수에 있는 디렉토리를
찾아서 해당 인스턴스를 기동 합니다.

그렇기 때문에 2개의 환경변수 설정, 톰캣 디렉토리의 분리,
인스턴스별 기동/중지 스크립트 작성 및
 server.xml 수정을 하면,
어렵지 않게 구현 하실수 있습니다.

여기서 잠시 Tomcat이 사용하는 “환경 변수“에 대해서 간략하게 설명 하겠습니다.

  • CATALINA_HOME : Tomcat Engine 디렉토리
  • CATALINA_BASE : 인스턴스 홈 디렉토리
  • CATALINA_TMPDIR : 인스턴스가 사용하는 임시 디렉토리
  • JAVA_HOME : 자바 홈 디렉토리
  • CLASSPATH : 클래스 패스 설정 정보

3. 설치 환경

.OS : CentOS 5.8 ※OS는 크게 차이가 없습니다.
JDK : 1.6.23
Tomcat : 7.x
Tomcat Home Directory : /home/beyondj2ee/was/tomcat7
Instance1 Directory : /home/beyondj2ee/was/apps/instance1
Instance2 Directory : /home/beyondj2ee/was/apps/instance2
JDK 설치 경로 : /home/beyondj2ee/java
사용자 계정 : beyondj2ee

4. 설치 하기

.(1) Tomcat 및 Java 홈 디렉토리 설정

※ 참고로 Tomcat 과 Java 설치는 생략 했습니다. 이와 관련된 부분은 다른 자료를 참고 하시기 
바랍니다.

OS 홈 디렉토리에 있는 “.bash_profile“를 열어서 아래와 같이 환경 변수를 설정 합니다.

1
2
export JAVA_HOME=~/java
export CATALINA_HOME=~/was/tomcat7

(2) 인스턴스별 루트 디렉토리 생성

각 인스턴스별 디렉토리를 생성 합니다. 여기서는 2개만 생성하도록 하겠습니다.

1
2
# mkdir -p /home/beyondj2ee/was/apps/instance1
# mkdir -p /home/beyondj2ee/was/apps/instance2

(3) 인스턴스별 필수 디렉토리 복사

Tomcat Home” 디렉토리로 이동해서 각 인스턴스에게 필요한 디렉토리들을 복사 합니다.

1
2
3
# cd $CATALINA_HOME
# cp -R * /home/beyondj2ee/was/apps/instance1
# cp -R * /home/beyondj2ee/was/apps/instance2

필요 없는 디렉토리들을 삭제 합니다.

1
2
3
4
# cd /home/beyondj2ee/was/apps/instance1
# rm -rf LICENSE;rm -rf NOTICE;rm -rf RELEASE-NOTES;rm -rf RUNNING.txt;rm -rf ./bin;rm -rf ./lib
# cd /home/beyondj2ee/was/apps/instance2
# rm -rf LICENSE;rm -rf NOTICE;rm -rf RELEASE-NOTES;rm -rf RUNNING.txt;rm -rf ./bin;rm -rf ./lib

(4) 인스턴스별 server.xml 수정하기

각 인스턴스별로 server.xml를 수정합니다. 여기서 중요한 것은 “하나의 머신”에서
멀티로 인스턴스를 기동하기 때문에 Port가 충돌이 날수 있습니다.

그렇기 때문에 Port설정에 제일 유념해야 합니다.
실무에서는 반드시 각 인스턴스별 Port를 정책적으로 관리 해야 합니다.


Instance1의 sever.xml

1
2
3
4
5
6
7
8
9
10
# vi /home/beyondj2ee/was/apps/instance1/conf/server.xml
--- server.xml -----------------------------------------------
<server port="8005" shutdown="SHUTDOWN">
    .....
    <connector
        connectiontimeout="20000"port="8080"
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        redirectport="8443" />
    <connector port="8009" protocol="AJP/1.3" redirectport="8443" />
</server>

Instance2의 sever.xml

1
2
3
4
5
6
7
8
9
10
# vi /home/beyondj2ee/was/apps/instance1/conf/server.xml
--- server.xml -----------------------------------------------
<server port="8105" shutdown="SHUTDOWN">
    .....
    <connector
        connectiontimeout="20000" port="8181"
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        redirectport="81443" />
    <connector port="8109" protocol="AJP/1.3" redirectport="81443" />
</server>
  •  반드시 server 엘리먼트에 shutdown=”SHUTDOWN”이라고 선언 해야 합니다. 실제로 “shutdown”
    명령을 실행하면 위에 선언된 속성의 인스턴스를 찾아서 중지를 하기 때문입니다.
  • server port, http port, ajp port, redirectport 이렇게 4개의 포트를 충돌 없이 선언이 되어야 합니다.

(5) 인스턴스별 기동/중지 쉘 만들기

Instance1의 startup-instance1.sh

1
2
3
4
5
6
7
8
# vi /home/beyondj2ee/was/apps/instance1/startup-instance1.sh
--- startup-instance1.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance1
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS="-Denv=product -Denv.servername=instance1"
cd $CATALINA_HOME/bin
./startup.sh
  • “CATALINA_BASE”  환경 변수에 인스턴스1의 홈 디렉토리 경로를 설정 합니다.
  • “JAVA_OPS”, “CATALINA_OPTS” 환경 변수를 서비스 요건에 맞게 설정을 합니다.
  • “Tomat Home” 디렉토리의 “bin” 디렉토리로 이동후 “startup.sh”를 실행 합니다.

Instance1의 shutdown-instance1.sh

1
2
3
4
5
6
# vi /home/beyondj2ee/was/apps/instance1/shutdown-instance1.sh
--- shutdown-instance1.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance1
cd $CATALINA_HOME/bin
./shutdown.sh
  • “CATALINA_BASE”  환경 변수에 인스턴스1의 홈 디렉토리 경로를 설정 합니다.
  • “Tomat Home” 디렉토리의 “bin” 디렉토리로 이동후 “shutdown.sh”를 실행 합니다.

Instance2의 startup-instance2.sh

1
2
3
4
5
6
7
8
# vi /home/beyondj2ee/was/apps/instance2/startup-instance2.sh
--- startup-instance2.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance2
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS="-Denv=product -Denv.servername=instance2"
cd $CATALINA_HOME/bin
./startup.sh

Instance2의 shutdown-instance2.sh

1
2
3
4
5
6
# vi /home/beyondj2ee/was/apps/instance2/shutdown-instance2.sh
--- shutdown-instance2.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance2
cd $CATALINA_HOME/bin
./shutdown.sh

5. 서버 기동 및 확인

설치 및 설정이 끝났습니다.  확인을 위해서 각 인스턴스별 서버를 “startup“해 보겠습니다.
아래와 같이 각 인스턴스별 “” 스크립트를 실행 합니다.

두개의 브라우져를 열고, 각 인스턴스가 서비스 하는 “port”로 접속 합니다.

5. Conclusion

Tomcat Server는 오늘 날  세계적으로 Java WAS로서 제일 많은 사용하고 있습니다. 특히,
Tomcat7“이 출시 되면서 성능, 안정성, 다양한 기능들에 대해서 많은 변화가 있었습니다.

Multiple Tomcat 기동 방법“은 실제로 real 환경에서 종종 사용하는 팁입니다.
하지만 위에서 언급했듯이 “관리 정책“이 없으면, 오히려 더욱 시스템이 복잡해 질수 있습니다.
이점 유념하시면서 유용하게 사용 하셨으면 합니다.

※참고 자료

.
Multiple Instances of Tomcat with Apache
Multiple Tomcat Instances on Single Machine
Setting up multiple instances of Tomcat


출처 : https://beyondj2ee.wordpress.com/2012/07/03/%EB%A9%80%ED%8B%B0-%ED%86%B0%EC%BA%A3-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-multiple-tomcat-instances/


Posted by 타카스 류지
|

MySQL에서는 한국어 문자 코드초기 설정 

C:/xampp/msql/bin/my.ini  



# Change here for bind listening

# bind-address="127.0.0.1" 

# bind-address = ::1          # for ipv6


여기에다가 넣음


# Where do all the plugins live

plugin_dir = "C:/xampp/mysql/lib/plugin/" 



밑에 내용 입력

character-set-server=utf8

skip-character-set-client-handshake




C:/xampp/apache/conf/extra/httpd-languages.conf


# DefaultLanguage nl   -> DefaultLanguage ko 변경


마지막 라인 부분에


AddDefaultCharset utf-8 추가




c:/xampp/php/php.ini



timezone 검색 후 


date.timezone=Asia/Seoul ◀ 표준 시간대를 Asia/Seoul로 설정(입력)



Posted by 타카스 류지
|
apmsetup은 구 버전의 php를 사용하고 있어서
신버전 pydio가 요구하는 php 버전을 만족하지 못해 xampp로 설치한다.

다운로드는 아래
[링크 : http://sourceforge.net/projects/xampp/files/]
[링크 : http://sourceforge.net/projects/ajaxplorer/files/pydio/stable-channel/


테스트 환경
OS : Windows 7 64bit 한글
APP : XAMPP 1.8.3.3 / Pydio 5.2.3


Step 1. 귀찮다 걍 깐다.. 근데 윈도우 디펜더 때문에 경고하는 거 같은데 귀챦으니 걍 Yes

 


Step 2. 걍 누른다.

 


Step 3. 기본값은 이렇지만 Pydio는 php만 있으면 되므로

 


Mysql이라던가 FTP라던가 다 빼버리고 설치

 


Step 4. 귀찮으니 걍 기본 설정으로 궈궈

 


Step 5. 난 착한 아이가 아니니 Learn more 는 체크 끄고

 


Step 6. 걍 누르면 깔리겠지

 


Step 7. 열심히 깔려주세요

 


Step 8. 일단 제어판은 실행해주는게 편하니 냅두고 Finish

 


Step 9. Start 누르면 아파치가 실행된다.

 


설정파일은 우측의 Explorer을 통해서 conf 폴더 갈수도 있지만
이렇게 간단하게 연결이 되어있어서 편하긴 한데... pydio를 하면서 apache / php 설정을 건드릴 일은 크게 없으니..

 


Step 10. 일단 기본 경로로 설치했기에
c:\xampp\htdocs가 웹페이지 루트가 되고 이 곳에 pydio를 받아서 압축 해제후
편리하게 pydio 라던가 원하는 폴더명으로 변경해준다.

 






가장 아래의 Step 18~20을 먼저 하면 좋다.

php.ini
기본 설정
session.gc_maxlifetime=1440
post_max_size=8M
upload_max_filesize=2M 

변경(세션 유지 시간 2시간, 업로드 다운로드 4G 까지 설정)
단 인터넷 속도가 느릴 경우를 고려해서 세션 유지 시간을 더 늘릴필요가 있다. 

 

session.gc_maxlifetime=7200
post_max_size=4G
upload_max_filesize=4G 



bootstrap_conf.php
추가

define("AJXP_LOCALE", ""); 






Step 12. 걍 http://localhost/pydio 로 접속한다.
그리고 상단에 click here to continue to Pydio를 누르면 설치 시작!

 


Step 13. 한글지원과는 전혀 상관없는 옵션이니 편한대로 설정

 


Step 14.  관리자 계정을 설정하고

 


기본언어는 표시될 메뉴 언어이니 적당히 골라주고

 


가장 가볍게 사용할거라서 DB없이 사용할 것이기에 No DB로 설정한다.

 


추가계정은 나중에 해도 되니 일단 패스

 


설정이 되는 중이니 냅둔다.

 


Step 15. 위에서 생성한 계정으로 로그인 한다.

 


Step 16. 로그인 하면 이제 이런식으로 대시보드가 뜨는데 설정으로 궈궈

 


Step 17. 하드 디스크 상에 경로를 복사해서 붙여 넣어주면 되나
아래와 같이 경로상에 한글이 들어가면 안되는 것으로 보여진다.(옵션을 어떻게 바꾸면 될지도 모르지만..)
그냥 단순하게 사용하려면 c:\sharedDocs 이런식으로 영문으로 폴더를 생성하고 그 경로를 넣어준다.

 



Step 18. 한글로 된 폴더나 파일이 있을 경우 에러가 발생하게 되는데

pydio의 bootstrap_conf.php의 해당 라인에 define("AJXP_LOCALE", "");을 추가해주면 된다.


Step 19. 업로드 파일 용량 제한
2011/01/03 - [프로그램 사용/ajaxplorer] - ajaxplorer 외부에서 업로드시 용량제한

Step 20. 로그인 세션 유지 시간 제한
2011/07/28 - [프로그램 사용/ajaxplorer] - Ajaxplorer 세션 자동종료 막기 혹은 시간 늘리기


 


 


 


session.gc_maxlifetime=7200
post_max_size=4G
upload_max_filesize=4G 

 

 

출처 : http://minimonk.net/4955

Posted by 타카스 류지
|

공개링크 생성문제 해결

 

/var/www/html/kbcloud/conf/bootstrap_conf.php를 에디트해서
가장 아랫줄의
define("AJXP_FORCE_SSL_REDIRECT",true);
앞의 //를 떼어준 후

define("AJXP_FORCE_SSL_REDIRECT",false);
로 바꿔주고

 

/var/www/html/kbcloud/core/classes/class.AJXP_Utils.php
의 852번 라인쯤에 있는
$protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http');
의 https를 http로 고치면 공개링크 생성이 잘 됨.
ssl이 안된 상태에서 https를 찾고 앉아 있게 만드는 게 문제이기 때문임.

 

 

한글폴더 만들기

 

인코딩 문제인데...
한글 폴더를 pydio 접속상태에서 만들 수 있느냐가 관건임.
그냥 하면 잘못된 폴더명이라고 에러...

/var/www/html/kbcloud/conf/bootstrap_conf.php

define("AJXP_LOCALE","")
앞의 //를 떼는 걸로 한글표기는 해결되는데
새폴더를 한글명으로 만드는 건
""를 "ko_KR.EUC-KR"로 바꿔줘야 잘 됨.

 

 

소스 사이트

https://pydio.com

https://sourceforge.net/projects/ajaxplorer/files/pydio/

https://ko.osdn.jp/projects/sfnet_ajaxplorer/

Posted by 타카스 류지
|

XAMPP 웹서버

웹서버 2016. 2. 24. 13:44

 

사용중인 버전 : xampp-portable-win32-1.8.3-5-VC11

 

 

https://www.apachefriends.org/index.html

https://sourceforge.net/projects/xampp/

https://sourceforge.net/projects/xampp/files/?source=navbar



-------------------------------------------------------


php 버전 5.3 이상일 경우 mysqli 사용권장 에러 포스팅 문제 해결


php.ini 설정


error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT


index.php

error_reporting(E_ALL ^ (E_NOTICE | E_DEPRECATED));


-------------------------------------------------------


httpd-vhosts.conf


#가상 호스트 샘플 a.com b.com   root 경로 www 폴더안에 생성 

<VirtualHost *:80>

    ServerAdmin webmaster@pobox.com

    DocumentRoot "C:/xampp/htdocs"

    ServerAlias *.com

     RewriteEngine on

     RewriteCond  %{HTTP_HOST} ^[^.]+\.com$

     RewriteRule  ^(.+) %{HTTP_HOST}$1 [C]

     RewriteRule  ^([^.]+)\.com(.*) C:/xampp/htdocs/$1/$2

    ErrorLog "logs/web_log.log"

    CustomLog "logs/web_log.log" common

</VirtualHost>


#가상 호스트 샘플 a.pobox.comm b.pobox.com   root 경로 www 폴더안에 생성 

#<VirtualHost *:80>

#    ServerAdmin webmaster@pobox.com

#    DocumentRoot "C:/xampp/htdocs/www"

#    ServerName pobox.com

#    ServerAlias *.pobox.com

#     RewriteEngine on

#     RewriteCond  %{HTTP_HOST} ^[^.]+\.pobox\.com$

#     RewriteRule  ^(.+) %{HTTP_HOST}$1 [C]

#     RewriteRule  ^([^.]+)\.test\.com(.*) C:/xampp/htdocs/www/$1/$2

#    ErrorLog "logs/web_log.log"

#    CustomLog "logs/web_log.log" common

#</VirtualHost>


-------------------------------------------------------


httpd-ssl.conf 설정


<VirtualHost _default_:443>


#   General setup for the virtual host

DocumentRoot "C:/xampp/htdocs"

ServerAlias *.com

 RewriteEngine on

 RewriteCond  %{HTTP_HOST} ^[^.]+\.com$

 RewriteRule  ^(.+) %{HTTP_HOST}$1 [C]

 RewriteRule  ^([^.]+)\.com(.*) C:/xampp/htdocs/$1/$2

ErrorLog "C:/xampp/apache/logs/error.log"

TransferLog "C:/xampp/apache/logs/access.log"



Posted by 타카스 류지
|

샘플


<VirtualHost 218.236.58.88> 
    ServerAdmin *** 개인정보보호를 위한 이메일주소 노출방지 ***     // 관리자 이메일 
    DocumentRoot /home/test/www                           // 기본 웹 루트        
    ServerName  test.com                                       // 기본서버명 
    ServerAlias *.test.com                                       // 모든 서브도메인을 Alias로 받습니다.
     RewriteEngine on                                           // RewriteEngine 활성화
     RewriteCond  %{HTTP_HOST}   ^[^.]+\.test\.com$   // 서버명에 서브도메인 정규화로 매치 
     RewriteRule  ^(.+)   %{HTTP_HOST}$1 [C]     // Cond에 해당되는 도메인에 대해서 도메인뒤에 나온 문장 매치
     RewriteRule  ^([^.]+)\.test\.com(.*) /home/test/$1/$2    서브도메인과 해당페이지 매치 
    ErrorDocument 404 /home/test/error/err-404.html 
    ErrorDocument 403 /home/test/error/err-403.html 
    ErrorLog /home/test/web_log/error_log 
    CustomLog /home/test/web_log/access_log common 
</VirtualHost>


출처 : http://sir.kr/pg_tip/14836?sfl=wr_subject%7C%7Cwr_content&stx=DNS


-- 정리 한 내용


#가상 호스트 샘플 a.com,  b.com   root 경로 www 폴더안에 생성 

#<VirtualHost *:80>

#    ServerAdmin webmaster@test.com

#    DocumentRoot "C:/xampp/htdocs"

#    ServerAlias *.com

#     RewriteEngine on

#     RewriteCond  %{HTTP_HOST} ^[^.]+\.com$

#     RewriteRule  ^(.+) %{HTTP_HOST}$1 [C]

#     RewriteRule  ^([^.]+)\.com(.*) C:/xampp/htdocs/$1/$2

#    ErrorLog "logs/web_log.log"

#    CustomLog "logs/web_log.log" common

#</VirtualHost>


#가상 호스트 샘플 a.test.comm b.test.com   root 경로 www 폴더안에 생성 

#<VirtualHost *:80>

#    ServerAdmin webmaster@test.com

#    DocumentRoot "C:/xampp/htdocs/www"

#    ServerName test.com

#    ServerAlias *.test.com

#     RewriteEngine on

#     RewriteCond  %{HTTP_HOST} ^[^.]+\.test\.com$

#     RewriteRule  ^(.+) %{HTTP_HOST}$1 [C]

#     RewriteRule  ^([^.]+)\.test\.com(.*) C:/xampp/htdocs/www/$1/$2

#    ErrorLog "logs/web_log.log"

#    CustomLog "logs/web_log.log" common

#</VirtualHost>



Posted by 타카스 류지
|