NGINX와 Apache: WordPress에 가장 적합한 웹 서버는 무엇입니까?
게시 됨: 2023-02-12WordPress 웹 사이트를 실행하려면 웹 서버에서 호스팅해야 합니다. 이를 통해 웹 브라우저가 사이트의 데이터를 요청할 수 있습니다. 그러나 몇 가지 웹 서버 옵션이 있으므로 하나를 선택하는 것이 어려울 수 있습니다.
선택할 수 있는 웹 서버가 많지만 Apache와 NGINX가 가장 많이 사용되는 옵션입니다. 그러나 둘 중 어느 것이 최고의 웹 서버입니까?
이 두 웹 서버는 전체 웹 트래픽의 50% 이상을 처리합니다. 그들은 많은 특성을 공유하지만 사이트에 적합한 것을 선택하는 데 도움이 될 수 있는 차이점을 알아야 합니다. 이 기사에서는 NGINX와 Apache의 차이점에 대해 설명합니다. 그런 다음 두 가지 유형의 서버에 WordPress를 설치하는 방법을 살펴보겠습니다. 시작하자!
성능 비교: NGINX와 Apache
앞에서 언급했듯이 NGINX와 Apache는 가장 눈에 띄는 웹 서버 옵션입니다. 다양한 워크로드를 처리하고 다른 소프트웨어와 함께 작동하여 LAMP 및 LEMU 스택을 형성할 수 있습니다. 그러나 이러한 웹 서버를 정확하게 비교하려면 서로 어떻게 다른지 이해해야 합니다.
아파치
Apache는 두 서버 중 이전 버전이며 1995년 Robert McCool이 Apache Software Foundation에서 처음 출시하고 개발했습니다. 1996년 이후 Apache는 최고의 웹 서버였으며 웹 사이트의 약 38.7%에서 사용되었습니다. 현재 Apache Foundation은 Apache용 버전을 계속 릴리스하고 있습니다.
Apache 모듈은 다음과 같은 다양한 이점을 제공합니다.
- 사전 설치 옵션: Apache는 주요 Linux 배포판에 사전 설치되어 제공됩니다.
- 사용자 커뮤니티: Apache에는 서로에게 도움을 제공하는 대규모 사용자 커뮤니티가 있습니다.
- 동적 모듈 로딩 시스템: 이 시스템은 서버를 업데이트할 때 메인 패키지를 건드리지 못하게 합니다.
- .htaccess 로 URL 재작성: Apache 2는 완전한 재작성을 위해 mod_rewrite를 사용합니다.
- 모듈식 설계: Apache는 모듈식 설계로 인해 더 큰 사용자 지정 및 유연성을 제공합니다.
- httpd.conf 파일을 사용한 서버 구성: 기본 apache2.conf 파일에 액세스할 필요가 없으므로 구성이 쉽습니다.
- "게이트웨이" 서버로 작동: Apache는 리버스 프록시 서버로 기능을 제공할 수도 있습니다.
Apache 서버는 사용자 지정 기능이 많은 사용자 친화적인 웹 서버입니다. 이 소프트웨어는 Unix 및 Windows 서버와도 호환됩니다.
NGINX
NGINX는 C10K 문제를 해결하기 위해 NGINX Inc.의 창업자인 Igor Sysoev가 2004년에 출시했습니다. 이것은 10,000개 이상의 동시 연결 요청을 처리할 때 웹 서버가 직면하는 문제입니다.
이를 해결하기 위해 NGINX는 비동기식, 비차단식, 이벤트 기반 아키텍처로 개발되었습니다. 이것이 NGINX와 Apache의 주요 차이점 중 하나입니다. 웹사이트의 약 32.1%가 NGINX를 사용하는 이유이기도 합니다.
NGINX가 제공하는 다른 많은 이점은 다음과 같습니다.
- 경량 설계 : NGINX는 최소한의 하드웨어에서 실행할 수 있으며 Apache보다 적은 메모리를 사용합니다.
- 정적 콘텐츠 처리 : NGINX는 올바르게 구성된 경우 더 나은 정적 콘텐츠 처리를 제공합니다.
- 과부하 응답성 : NGINX는 트래픽이 많을 때 높은 응답성을 유지합니다.
- 사용자 친화적인 디자인 : 학습 곡선이 더 쉽고 NGINX는 초보자에게 친숙합니다.
- 모듈식 설정 : 이 서버의 설계는 유연한 구축과 다양한 타사 모듈을 허용합니다.
- 리버스 프록시: NGINX Plus는 저렴한 비용으로 하드웨어 기반 솔루션과 유사한 기능을 갖춘 소프트웨어 기반 리버스 프록시를 제공합니다.
NGINX 및 NGINX Plus는 무거운 로드를 처리할 수 있는 로드 밸런싱 기능 때문에 트래픽이 많은 웹사이트에 더 나은 옵션으로 간주되는 경우가 많습니다. 정적 웹 콘텐츠가 많은 사이트에서 최고의 성능을 유지하는 데에도 이상적입니다.
Apache와 NGINX의 차이점은 무엇입니까?
NGINX와 Apache HTTP Server는 비슷하지만 둘 사이에는 많은 차이점이 있습니다. 가장 큰 차이점은 이러한 웹 서버가 여러 클라이언트 요청을 처리하는 방식입니다. Apache는 분기된 솔루션을 사용하고 NGINX는 비차단 이벤트 루프를 사용합니다.
Apache는 요청 처리 작동 방식을 지시하는 MPM(Multi-Processing Modules)을 제공합니다. 분기 접근 방식을 사용하면 연결 처리 아키텍처를 더 쉽게 교체할 수 있습니다. 이 접근 방식에 사용되는 모듈은 Apache의 핵심 기능에 추가된 것입니다. 각 다중 처리 모듈은 서버 요청을 처리하기 위해 서로 다른 프로세스를 시작합니다.
한 가지 예는 여러 스레드를 처리하는 프로세스를 생성하는 모듈인 mpm-worker 입니다. 각 스레드는 서버에 대한 단일 연결입니다. 이 모듈을 추가하면 서버 확장이 가능하고 대량의 트래픽을 관리할 수 있습니다.
NGINX는 다르며 동시 요청 처리를 위한 작업자 프로세스만 생성합니다. 이러한 프로세스는 여러 요청을 지속적으로 확인하고 처리하는 비차단 이벤트입니다. 이 지속적인 확인은 루프를 생성합니다. 루프의 모든 이벤트는 비동기식이며 연결이 종료되면 루프에서 제거됩니다.
최고의 WordPress 웹 서버 소프트웨어는 무엇입니까?
Apache와 NGINX는 모두 WordPress 호스팅에서 잘 작동합니다. 그러나 성능 향상을 원하는 경우 NGINX가 더 나은 옵션일 수 있습니다. 두 가지 유형의 서버에 WordPress를 설치하는 방법을 살펴보고 둘 중 하나를 시작할 준비를 하십시오.
아파치에 워드프레스를 설치하는 방법
Apache에 WordPress를 설치하려면 LAMP(Linux, Apache, MySQL 및 PHP) 스택을 설정해야 합니다. 이것은 일반적으로 Ubuntu 서버에서 수행됩니다.
1단계: 서버에서 Sudo 사용자 생성
사용자를 생성하려면 루트 사용자로 서버에 로그인하십시오. 그런 다음 아래의 사용자 추가 명령을 사용하여 새 계정을 만듭니다.
$ adduser username
서버는 암호를 설정하고 확인하라는 메시지를 표시합니다. 다음으로 사용자의 세부 정보를 입력합니다. 그런 다음 해당 사용자에게 sudo 액세스 권한을 제공할 수 있습니다. 이 액세스를 통해 사용자는 일반적으로 루트 사용자가 완료하는 명령을 실행할 수 있습니다.
sudo 그룹에 사용자를 추가하려면 다음 명령을 입력하십시오.
$ usermod -aG sudo username
그런 다음 나머지 설치 프로세스 동안 sudo 사용자로 서버에 로그인해야 합니다.
2단계: Apache 웹 서버 설치
Apache를 설치하려면 Ubuntu 패키지 관리자 apt를 사용해야 합니다. 이는 Ubuntu 서버의 기본값입니다. 다음 sudo 명령을 입력하면 비밀번호를 입력한 후 설치가 시작됩니다.
$ sudo apt update $ sudo apt install apache2
그러면 설치될 패키지와 필요한 디스크 공간이 표시됩니다. Y를 누른 다음 Enter를 눌러 설치를 시작하십시오.
3단계: MySQL 데이터베이스 서버 설치
다음으로 데이터베이스 관리 시스템인 MySQL을 설치해야 합니다. 패키지 관리자에서 다음 명령을 실행하면 설치가 시작됩니다.
$ sudo apt install mysql-server
필요한 패키지와 디스크 공간이 다시 표시됩니다. 설치를 시작하려면 Y를 누르고 루트 암호를 설정하십시오.
4단계: PHP 설치
PHP는 코드를 동적 콘텐츠로 처리하는 LAMP 스택의 일부입니다. 설치하려면 다음 명령을 입력해야 합니다.
$ sudo apt install php libapache2-mod-php php-mysql
그러면 PHP가 아무 문제 없이 설치됩니다. 스택 설치를 완료하려면 서버를 다시 시작해야 합니다. 이렇게 하려면 다음 명령을 입력하십시오.
$ sudo systemctl restart apache2
이제 LAMP 스택이 설치 및 구성되었습니다.
5단계: 가상 호스트 설정
가상 호스트는 구성 세부 정보를 캡슐화하며 권장되는 단계입니다. 캡슐화를 통해 서버에서 둘 이상의 웹사이트를 호스팅할 수 있습니다.
Apache 서버는 기본적으로 여러 웹사이트에서 다루기 힘든 /var/www/html 디렉토리를 사용합니다. 가상 호스트를 만들려면 새 웹사이트의 도메인에 대해 /var/www 에 디렉토리 구조를 설정해야 합니다.
다음 명령을 사용하여 이 구조를 생성합니다.
sudo mkdir /var/www/new_domain
new_domain을 웹사이트 도메인으로 변경합니다. 그런 다음 nano 명령을 사용하여 샘플 콘텐츠가 포함된 index.html 파일을 만듭니다.
$ nano /var/www/new_domain/index.html
Apache가 콘텐츠를 제공하는지 확인하려면 호스트 파일도 만들어야 합니다. 다음 명령은 구성 파일을 만듭니다.
$ sudo nano /etc/apache2/sites-available/your_domain.conf
그런 다음 다음 구성 블록을 추가합니다.
<VirtualHost *:80> ServerAdmin [email protected] ServerName new_domain ServerAlias www.new_domain DocumentRoot /var/www/new_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
다음 명령은 파일을 활성화하고 두 번째 명령은 서버의 기본 사이트를 비활성화합니다.
$ sudo a2ensite new_domain.conf $ sudo a2dissite 000-default.conf
이제 가상 호스트가 구성되고 작동해야 합니다. 이 새로 생성된 디렉토리는 워드프레스 설치에 사용되어야 합니다.
6단계: 워드프레스 설치
LAMP 스택을 구성한 후 WordPress를 설치할 수 있습니다. 최신 버전의 WordPress를 다운로드하고 다음 명령으로 설치합니다.
$ sudo apt update $ sudo apt install wordpress php libapache2-mod-php mysql-server php-mysql
다음으로 WordPress용 Apache를 구성하고 MySQL 데이터베이스를 생성합니다. 그런 다음 WordPress 웹 브라우저 인터페이스를 사용하여 웹사이트 구성을 완료합니다. 여기에는 사이트 제목 생성 및 비밀번호 설정이 포함됩니다.
NGINX에 워드프레스를 설치하는 방법
NGINX에 WordPress를 설치하려면 NGINX Unit이 지원하는 배포판 중 하나를 실행하는 서버가 필요합니다. Linux를 사용하는 경우 LEMU(Linux, NGINX, MySQL 및 NGINX 장치) 스택을 생성하게 됩니다.
1단계: MySQL 설치
시작하기 전에 sudo 액세스 권한이 있는 서버 사용자를 생성합니다. 루트 사용자로 서버에 로그인하고 다음 명령을 사용하여 새 계정을 만듭니다.
$ adduser username
사용자 세부 정보를 입력하기 전에 암호를 입력하고 확인해야 합니다. 그런 다음 해당 사용자에게 sudo 액세스 권한을 제공할 수 있습니다. 이 액세스를 통해 사용자는 일반적으로 루트 사용자가 완료하는 명령을 실행할 수 있습니다.
sudo 그룹에 사용자를 추가하려면 다음 명령을 입력하십시오.
$ usermod -aG sudo username
sudo 사용자로 서버에 로그인하고 다음 명령을 사용하여 MySQL을 설치합니다.
$ sudo apt-get install mysql-server
새 루트 암호를 입력하십시오. 그런 다음 MySQL 구성 도구를 실행할 수 있습니다. 이것은 설치 프로세스를 안내하는 구성 마법사입니다.
2단계: MySQL 데이터베이스 생성
MySQL이 준비되면 새 데이터베이스를 만들 수 있습니다. 또한 관리 권한이 있는 새 사용자를 만들어야 합니다. 이렇게 하려면 MySQL 루트 계정에 로그인하고 다음 명령을 입력합니다.
$ sudo mysql -u root -p mysql> CREATE DATABASE wordpress; mysql> CREATE USER [email protected] IDENTIFIED BY 'secure_password'; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO [email protected]; mysql> FLUSH PRIVILEGES; mysql> Exit Bye
Flush Privileges 명령은 MySQL이 변경 사항을 인식하는지 확인합니다. 기본 설정에 맞게 기본 사용자 이름과 암호를 변경해야 합니다.
3단계: 워드프레스 설치
WordPress를 설치하기 전에 다음 명령을 사용하여 임시 파일 위치를 만들어야 합니다.
$ cd /var/www/ $ sudo wget http://wordpress.org/latest.tar.gz $ sudo tar xzvf latest.tar.gz
이 명령은 또한 WordPress를 다운로드하고 압축을 풉니다.
4단계: WordPress 구성
그런 다음 WordPress 구성 파일의 복사본을 만들고 다음 명령을 사용하여 이름을 바꿉니다.
$ cd /var/www/wordpress $ sudo cp wp-config-sample.php wp-config.php
파일의 SALT 키를 업데이트하여 보안을 강화할 수 있습니다. nano를 사용하면 wp-config.php 파일이 열리고 SALT 키를 검색할 수 있습니다.
$ sudo nano wp-config.php
키를 새로 생성된 키로 교체한 다음 파일을 저장하고 종료합니다.
5단계: PHP 설치
NGINX Unit을 사용할 수 있지만 여전히 PHP를 설치해야 합니다. 이렇게 하려면 다음 명령을 사용할 수 있습니다.
$ sudo apt-get install -y php7.0 php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt
이것은 WordPress가 NGINX Unit에 포함되지 않은 여러 확장에 의존하기 때문에 필요합니다.
6단계: NGINX 장치 설치
마지막으로 서버 운영 체제용으로 미리 컴파일된 NGINX 유닛을 설치해야 합니다. 다음 명령을 사용하여 PHP용 모듈을 설치합니다.
$ sudo apt-get install unit-php $ sudo service unit restart $ sudo curl -X PUT --data-binary @/usr/share/doc/unit-php/examples/unit.config --unix-socket /run/control.unit.sock http://localhost/config $ curl http://localhost:8300/
이 명령은 또한 NGINX Unit과 PHP가 제대로 작동하는지 확인합니다.
다음으로 NGINX 오픈 소스를 설치하고 구성해야 합니다. 메인라인 브랜치에서 미리 빌드된 패키지를 설치할 수 있습니다. 여기에는 최신 기능 및 패치가 포함됩니다. 이 구성 후에 WordPress를 사용할 수 있습니다.
WP 엔진으로 계속 학습
Apache와 NGINX는 가장 널리 사용되는 웹 서버 소프트웨어 옵션입니다. 그러나 NGINX와 Apache 간의 전투에서 어느 것이 맨 위에 나오나요? 여러 면에서 비슷하지만 NGINX 서버는 트래픽이 많은 웹사이트에 더 나은 성능을 제공합니다. 그러나 Apache에는 더 많은 문서가 있는 더 큰 커뮤니티가 있습니다.
물론 뛰어난 웹 사이트를 개발하려면 여러 가지가 필요합니다. 여기에는 올바른 도구, 최고의 리소스 및 최고의 웹 호스팅이 포함됩니다!
WordPress 최적화 및 HTTP 400 오류 이해와 같은 더 많은 SEO 및 웹 관련 리소스를 보려면 리소스 센터를 확인하여 사이트를 개선하십시오.