두 서버에 Wordpress 설치-로드 균형 조정


14

다른 서버에서 하나의 데이터베이스를 공유하는 두 서버에 워드 프레스 (하나의 블로그, 하나의 도메인 (예 : mycompany.com/blog))를 설치해야합니다.이 두 서버는로드 밸런서 뒤에 있고 데이터베이스는 다른 서버에 있습니다. 트래픽이 많아서 이런 방식으로 계획하고 있습니다.

IIS6, 7 등이 설치된 Windows 2003, 2008의 단일 서버에서 독립 실행 형 워드 프레스 설치를 수행했습니다.

나는 이것을 어떻게 구현할 것인지 연구하고있다.

이것을 달성하는 단계는 무엇이며 검색 할 때 wp-content / uploads 디렉토리에 관한 게시물이 정기적으로 동기화되는 것을 보았습니까?

도움을 주셔서 감사합니다. 읽어 주셔서 감사합니다.


우리가 한 일 :

a) san 클러스터에 연결된 두 개의 웹 서버가 있습니다. b) san에 블로그 디렉토리를 만듭니다 .c) 두 웹 서버 모두에서 해당 블로그 디렉토리를 가상 디렉터리로 매핑했습니다 .d) 그 중 하나에 도메인 및 IIS 가상 디렉토리는 두 서버 모두 동일합니다 (예 : www.abc.com) e)이 블로그의 데이터베이스는 두 개의 MySQL Box에 있습니다.

Wordpress가 San에 앉아 있으므로 업로드 또는 이와 유사한 내용과 충돌하지 않으므로 Blog url은 www.abc.com/blog이며 두 방법 모두에서 구성됩니다.

누군가를 돕는 희망!


1
"내가 생각한 적이없는"효과에 +1.
Richard Slater

1
+1 "누군가 이것을 구현하는 가장 좋은 방법과 왜 이것이 가장 좋은 방법인지에 대한 단계별 지침으로 정말 훌륭한 답변을 제공하기를 바랍니다."
Jed Daniels

방금 우리가 한 일에 추가했습니다-이것이 도움이 되길 바랍니다
rihatum

답변:


4

해당 디렉토리가 동일해야하는 경우 다른 서버에 배치하고 NFS를 통해 원격으로 마운트 할 수 있습니까?


SAN이 있습니다. SAN에 wordpress를 설치하고 IIS에서 해당 디렉토리를 wordpress / blog 디렉토리로 추가했습니다. 의견을 보내 주셔서 감사합니다.
rihatum

2
SAN은입니다 하지 NFS와 같은 것.
chris

3
Memcache와 세션을 공유하고 NFS 또는 GlusterFS와 파일을 공유합니다. HAProxy 또는 Varnish (캐시도 함께)와 트래픽을 공유하고 순환 복제로 데이터베이스를 공유하십시오.
Tom O'Connor

GlusterFS는 매력적인 제안입니다. 감사합니다. 정적 인 것들에 대한 Wordpress 스케일링의 해결책으로 그것을 탐구하고 있습니다.
Artem Russakovskii

3

워드 프레스 성능을 향상시키는 방법은 너무 많아서 두 번째 서버와로드 밸런싱이 필요하지 않습니다. 두 단어로 : "모든 것을 캐시".

  • PHP Opcode Cacher (APC)를 사용하십시오. 64MB 미만의 메모리에서 워드 프레스로 90 % 캐시 적중률을 쉽게 달성 할 수 있습니다.

  • mysql 쿼리 캐시를 활성화하십시오. 매우 적은 mem (사이트에 따라 다르지만 결코 너무 높지 않음)으로 65 % 또는> 캐시 적중률을 쉽게 달성 할 수 있습니다.

가장 중요한 것은:

Wordpress는 대부분의 요청이 수백 페이지 (블로그 게시물)로 제한된 "읽기"사이트 (대량 쓰기)입니다. 가장 인기있는 게시물의 정적 버전을 제공하여 초당 요청을 10 배 늘릴 수 있습니다. 가장 좋은 플러그인은 wp-super-cache입니다. 특정 플러그인이 2k3과 호환되는 경우 긍정적이지 않지만, 자동으로 페이지의 정적 버전을 생성하고 정기적으로 새로운 주석, 편집 등을 포함하도록 업데이트하는 것이 가장 좋은 방법입니다.

위의 일반적인 개선 사항이 구현되면 위의 슬래시 도트 효과를 쉽게 처리 할 수 ​​있으면 사이트에서 충분한 트래픽을 수행하여 두 개의 웹 / 응용 프로그램 서버를 필요로한다고 의심합니다. 그러나 두 개의 웹 서버는 수준의 내결함성을 추가합니다. 하나의 웹 서버로 성능을 달성 할 수 있으므로 능동 / 수동 설정을 사용하여 내결함성을 얻을 수 있습니다. 이것은 더 간단하며 세션 정보를 공유 할 필요가 없습니다.


+1 WordPress에는 캐싱 플러그인도있어 정말 잘할 수 있습니다. 적절한 양의 캐싱을 사용하여 이와 같은 두 서버에서 WordPress를 실행할 이유가 없습니다.
WheresAlice

4
로드 밸런싱은 성능 뿐만 아니라 중복성 추가에 관한 것입니다.
Mike P

WP Super Cache를 언급 할 때 W3 Total Cache도 언급해야합니다.
david

2

동일한 상황이 발생하여 wp uploads 디렉토리를 호스팅하는 s3 플러그인을 설치하여 동기화를 처리 할 필요가 없었습니다.

이것은 우리가 사용한 것입니다 : http://tantannoodles.com/toolkit/wordpress-s3/

지금까지 훌륭하게 작동했습니다!


1
2009 년 이후 업데이트되지 않은 플러그인은 사용하지 않는 것이 좋습니다. 유지 관리되지 않으며 향후에 S3 변경, 보안 등 후회할 수 있습니다.
Artem Russakovskii

참고로, 우리는 여전히이 플러그인으로 잘 작동하고 있습니다.
shennyg

@ shennyg-여전히 강해지나요?
Ben

@Steve wordpress-s3은 유지되지 않습니다. 나는 함께 가고 싶어 W3 총 캐시 는 사용자의 미디어 라이브러리를 동기화 할 수 있습니다.
shennyg

0

업로드 / 디렉토리와 세션 디렉토리 (일반적으로 / tmp)를 서버간에 공유해야합니다.

php.ini에서 변경하고 samba, nfs 또는 원하는 것을 통해 서버간에 세션과 업로드 된 파일의 fs를 공유하십시오.


0

먼저 여기에 매우 관련된 질문에 대한 답이 있습니다. SAN + MySQL 복제-로드 밸런싱 된 Drupal 클러스터에 원하는 것이 있습니까?

웹 클러스터링은 토끼의 허점을 훨씬 넘어갈 수 있으므로 비즈니스 목표를 염두에두고 엔지니어 한 사람이 잃어 버리지 않는 것이 중요합니다. 예를 들어, 두 개의 웹 서버와 하나의 데이터베이스 서버를 계획하고 있지만 데이터베이스 서버에 병목 현상이 발생하면 어떻게해야합니까? 그런 다음 두 번째 웹 서버가 낭비됩니다. 하나의 웹 서버와 하나의 데이터베이스 서버 및 잘 구성된 워드 프레스가있는 최신 하드웨어에서는 초당 수백 건의 요청을 처리 할 수 ​​있습니다. 당신은 그것을 기대하고 있습니까? 그렇지 않은 경우로드 밸런싱에 문제가 없을 수 있습니다.


0

세션은 파일 시스템에서 memcache를 통해 더 잘 공유됩니다.


-1

Linux 쌍에서는 DRBD를 사용합니다. Windows 파일은 분산 파일 서비스입니다.

http://technet.microsoft.com/en-us/library/cc753479%28WS.10%29.aspx


... DRBD가 블록 장치를 제공한다는 점을 제외하면 파일 시스템과 거의 동일하지 않습니다.
andol

... 그런 다음 파일 시스템을 포맷 할 파일 시스템을 선택할 수 있습니다. NTFS를 사용하는 것보다 더 많은 결정을 내릴 수 없습니다.)
Terence Johnson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.