Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
Apache là gì?
Apache gọi tắt của Apache HTTP Server là một chương trình máy chủ giao tiếp bằng giao thức HTTP và hoạt động trên hầu hết các hệ điều hành. Ví dụ như Unix, Windows, Linux, Novell Netware và nhiều hệ điều hành khác. Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng web thế giới www. Vậy cơ sở hình thành Apache là gì? Cùng Mắt Bão tìm hiểu nhé!
Apache là phần mềm web server miễn phí mã nguồn mở. Hiện nay nó đang chiếm đến khoảng 46% thị phần websites trên toàn thế giới. Với tên gọi chính thức là Apache HTTP Server, Apache được điều hành và phát triển bởi Apache Software Foundation.
Mục đích của Apache là giúp chủ trang website đưa nội dung lên web. Do đó Apache được xếp vào dạng phần mềm “web server”. Đây là một trong số những web server lâu đời và đáng tin cậy nhất với phiên bản đầu tiên đã được ra mắt từ hơn 20 năm trước.
Apache là một trong những web server phổ biến nhất thế giới cho phép bạn thiết lập website an toàn, tiết kiệm chi phí lẫn công sức một cách hiệu quả và được những đơn vị kinh doanh vừa và nhỏ ưu tiên lựa chọn hàng đầu.
Để thực sự hiểu rõ “Apache là gì?“, bạn nên có nền tảng kiến thức vững vàng về:
Apache web server hoạt động như thế nào?
Không chỉ đơn thuần là server vật lý, Apache là một phần mềm chạy trên server, thiết lập kết nối giữa server và các trình duyệt của người dùng, chẳng hạn như Firefox, Google Chrome, Safari,… rồi truyền, trao đổi file cấu trúc 2 chiều dạng client-server. Như vậy xét về cách thức hoạt động, Apache là một phần mềm đa nền tảng, hoạt động tốt với cả server Unix và Windows.
Khi khách truy cập một trang web, trình duyệt sẽ gửi yêu cầu tải trang web đó lên server. Sau đó, Apache sẽ trả kết quả với tất cả đầy đủ các file cấu thành nên trang mà khách hàng muốn truy cập bao gồm cả nội dung, hình ảnh, video,… Server và client sẽ giao tiếp với nhau qua giao thức HTTP, khi đó Apache đảm nhận trách nhiệm đảm bảo tiến trình này diễn ra mượt mà và bảo mật một cách tối ưu nhất.
Với cách hoạt động như vậy, Apache là một nền tảng module có độ tùy biến rất cao. Nó cho phép quản trị server có cả quyền tắt hoặc thêm chức năng. Đặc biệt, Apache có module cho bảo mật caching, URL rewriting, chứng thực mật khẩu,… Giúp bạn bảo vệ trang web của mình một cách an toàn nhất.
Khác biệt giữa NGINX và Apache là gì?
NGINX là gì?
NGINX là một phần mềm web server mã nguồn mở, sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous).
NGINX, hay được giới chuyên môn phát âm là Engine-X, là một ứng dụng web server được phát hành năm 2004. Là một trong những web server đầu tiên, thế nên NGINX ngay lập tức đã được giới lập trình web đón nhận và trở nên phổ biến. Đây là điều bạn nên lưu ý khi sử dụng các dịch vụ cho thuê máy chủ, xem server đó đang sử dụng Apache hay NGINX nhé!
Cụ thể, NGINX được tạo để xử lý các vấn đề được gọi là c10k problem (10,000 connections). NGINX là web server sử dụng threads để xử lý truy vấn của khách và lượng kết nối cùng lúc tối đa là 10,000. Ngoài Apache, bạn có thể tìm hiểu thêm về NGINX trong bài “NGINX là gì?“
So sánh giữa NGINX và Apache
So sánh một chút với Apache ta có thể thấy:
- Appache sử dụng cấu trúc dạng thread. Do đó, chủ sở hữu các website nặng có traffic lớn sẽ có thể gặp phải vấn đề hiệu xuất.
- NGINX thì có thể xử lý vấn đề c10k. Nên NGINX chiếm lợi thế hơn một chút về khía cạnh này và có lẽ đây là một trong các web server thành công nhất trong việc giải quyết bài toán này tính đến thời điểm hiện nay.
NGINX lại có kiến trúc xử lý dạng “sự kiện” không phải tạo process mới cho mỗi truy vấn. NGINX sẽ xử lý truy vấn trong một thread duy nhất. Master process sẽ quản lý nhiều worker processes mà thực sự quản lý việc xử lý truy vấn. Do đó, việc phân tán truy vấn của NGINX hiệu quả, quản lý tốt nhưng có phần hạn chế về tốc độ.
Như vậy, xét về tổng thể, nếu bạn có một website có traffic lớn, NGINX là lựa chọn tối ưu, vì vừa có thể xử lý nhiều tiến trình, vừa tiết kiệm tài nguyên một cách hiệu quả. Tuy nhiên, đối với những doanh nghiệp vừa và nhỏ, không sở hữu traffic lớn, thì Apache lại chiếm ưu thế hơn hẳn. Vì nó không chỉ dễ cấu hình mà có sở hữu nhiều modules hơn, thân thiện hơn, dễ sử dụng hơn.
Ưu điểm và nhược điểm của Apache là gì?
Ưu điểm Apache là gì?
- Apache là giải pháp tài chính hiệu quả. Apache là phần mềm mã nguồn mở và miễn phí, kể cả cho mục đích thương mại.
- Có độ tin cậy cao, ổn định, không chỉ được cập nhật thường xuyên, mà còn được nâng cấp với nhiều bản vá lỗi bảo mật liên tục.
- Phần mềm có tính linh hoạt cao, cấu trúc module tiện lợi. Apache dễ cấu hình, thân thiện với người dùng, kể cả dân không chuyên.
- Phần mềm đa nền tảng (hoạt động được cả với server Unix và Windows). Đặc biệt hoạt động cực kỳ hiệu quả với WordPress sites. Mạnh mẽ hơn, WordPress có cộng đồng lớn, sẵn sàng hỗ trợ giải quyết mọi vấn đề.
Nhược điểm Apache là gì?
- Gặp vấn đề hiệu năng nếu website có lượng truy cập cực lớn.
- Quá nhiều lựa chọn thiết lập có thể gây ra các điểm yếu bảo mật.
Hướng dẫn cài đặt Apache
Chỉ cần thực hiện theo những thao tác cực kỳ đơn giản dưới đây, bạn có thể cài đặt Apache một cách dễ dàng. Mắt Bão sẽ hướng dẫn các bạn cách cài đặt Apache trên Windows, Ubuntu và CentOS. Dưới đây là hướng dẫn chi tiết:
Cách cài đặt Apache lên Windows
- Bước 1: Download Apache – Apache Lounge phiên bản 64 bit hoặc 32 bit và Microsoft Visual C++ 2015 Redistributable.
- Bước 2: Cài đặt Apache. Sau khi download thì tiến hành giải nén thư mục Apache24 vào ổ C. Nhất định phải là ổ C, vì source này được xây dựng mặc định cho ổ C. Nếu như bạn muốn cài đặt trên ổ D hay bất kỳ đâu thì bạn cần phải thay đổi lại cấu hình cho DocumentRoot.
- Khởi động Apache: Mở CMD và chuyển vùng làm việc vào thư mục C:Apache24bin và chạy file httpd.exe, khi có thông báo “It works!” hiện lên hoặc nếu vào http://localhost kiểm tra thấy dòng “It works!” là bạn đã cài đặt và chạy Apache thành công.
Nếu chỉ sử dụng Apache trên localhost, bạn có thể sử dụng các phần mềm tích hợp sẵn cho việc nghiên cứu như XAMPP, AppServ.
Thông thường thì các lập trình viên thường sử dụng 2 phần mềm chính là XamPP và AppServ cài đặt cho localhost, bạn chỉ có thể cài một trong hai phần mềm trên vì nếu lập trình web bằng PHP thì khi cài 2 phần mềm trên hệ thống sẽ bị xung đột.
Xem bài viết “Localhost là gì?” để được hướng dẫn cài đặt cụ thể hơn nhé!
Cách cài đặt Apache lên Ubuntu
Bạn chỉ việc sử dụng Synaptic Package Manager, Ubuntu Software Center để tìm kiếm và cài đặt gói module apache2. Hoặc dùng Terminal và gõ lệnh sau:
sudo apt-get update sudo apt-get install apache2
Sau khi quá trình cài đặt này hoàn tất, các bạn khởi động trình duyệt và gõ địa chỉ http://localhost. Nếu kết quả hiển thị It Works! có nghĩa là chúng ta đã cài đặt Apache thành công.
Thiết lập và tùy chỉnh Apache
Sau khi cài đặt Apache,ứng dụng sẽ được thêm vào danh sách init.d của hệ thống, do đó có thể tự khởi động cùng với hệ điều hành. Sử dụng những lệnh sau để khởi động, kích hoạt và ngừng hoạt động của Apache:
sudo /etc/init.d/apache2 start #start apache sudo /etc/init.d/apache2 stop #stop apache sudo /etc/init.d/apache2 restart #restart apache
Nếu không muốn Apache tự khởi động cùng hệ thống, gõ lệnh sau:
sudo update-rc.d -f apache2 remove
Còn nếu muốn làm ngược lại quá trình trên thì sử dụng lệnh:
sudo update-rc.d apache2 defaults
Cách thay đổi thư mục localhost Apache trên Ubuntu
Nhưng lưu ý rằng những lệnh trên chỉ áp dụng với các distro dựa trên Debian (bao gồm Ubuntu) mà thôi.
Apache sẽ chỉ hoạt động dựa trên thư mục /var/www. Để thay đổi thư mục các file khi truy cập bằng localhost bạn hãy làm theo các thao tác sau.
- Tạo 1 trang HTML đơn giản và đặt tên là index.html
- Đặt ở trong thư mục public_html.
- Sau đó, mở Terminal và gõ lệnh:
gksu gedit /etc/apache2/sites-enabled/000-default.conf
- Thay đổi DocumentRoot /var/www thành DocumentRoot /home/user/public_html ,
Lưu thay đổi của file này, sau đó khởi động lại Apache:
sudo /etc/init.d/apache2 restart
Mở lại đường dẫn http://localhost trên trình duyệt, bạn sẽ nhìn thấy file html bên trong thư mục public_html:
Cài đặt Apache trên CentOS
Bạn có thể tham khảo 2 bài viết dưới đây của Mắt Bão để được hướng dẫn chi tiết cài đặt Apache lên CentOS:
Apache Tomcat là gì?
Apache Tomcat là một web server HTTP được phát triển bởi Apache Software Foundation, hỗ trợ mạnh cho ứng dụng Java thay vì website tĩnh. Do đó, nó có thể chạy nhiều bản Java chuyên biệt như Java Servlet, JavaServer Pages (JSP), Java EL, và WebSocket.
Bạn hoàn toàn có thể sử dụng Apache Tomcat với nhiều ngôn ngữ lập trình khác như PHP, Python, Perl,… Nhờ sự giúp đỡ của module Apache phù hợp, chẳng hạn mod_php, mod_python, mod_perl,…
Hướng dẫn cài đặt Apache Tomcat
Dưới đây, Mắt Bão sẽ hướng dẫn các bạn cách đơn giản nhất để:
- Cách cài đặt Apache Tomcat trên Windows
- Cách cài đặt Apache Tomcat trên máy chủ Ubuntu
- Hướng dẫn cài đặt Apache Tomcat trên CentOS
Hãy cùng tìm hiểu chi tiết!
Cách cài đặt Apache Tomcat trên Windows
Biết về Apache TomCat là gì chưa đủ. Để cài đặt thành công Apache Tomcat, ta thực hiện đầy đủ các bước sau đây:
- Download Tomcat: Tiến hành theo các bước vào đường dẫn:→ Downloads → TomCat X.X → “8.0.{xx}” → Binary Distributions → Core → 32-bit/64-bit Windows Service Installer. Bạn nên lựa chọn phiên bản ra mắt trước đó vì chúng sẽ ổn định và ít bugs hơn bản mới nhất. Sau đó cài đặt Java 8 lưu ý đường dẫn cài đặt vì sẽ cần thiết trong quá trình cài đặt Tomcat.
- Cài đặt Tomcat: Mở trình cài đặt và tùy chỉnh các thông số theo nhu cầu.
- Cấu hình Tomcat: Các file cấu hình của Tomcat được lưu trong thư mục conf. Có bốn file phục vụ cho việc cấu hình của Tomcat:
- xml: cấu hình số cổng của TCP. Cổng mặc định của TCP cấu hình trong Tomcat là 8080, chúng ta hoàn toàn có thể thay đổi thông số này trong khoảng từ 1024 đến 65535 như đoạn code dưới đây :
<Connector port="9999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- web.xml
- context.xml
- tomcat-users.xml : Để kích hoạt tính năng quản lí của Tomcat, chúng ta thêm đoạn code dưới đây vào bên trong cặp thẻ <tomcat-users>:a
<role rolename="manager-gui"/> <user username="manager" password="xxxx" roles="manager-gui"/>
Để hoàn tất việc cấu hình, chúng ta tiến thành tắt Tomcat. Sau đó khởi động lại bằng cách chạy lần lượt hai file: shutdown.bat và startup.bat.
Cách cài đặt Apache Tomcat trên máy chủ Ubuntu
Sau đây là hướng dẫn các bạn cài đặt và cấu hình Apache Tomcat trên máy chủ Ubuntu 16.04 LTS, Ubuntu 17.10 và cả phiên bản Ubuntu 18.04 LTS mới nhất.
Cài đặt Java
Đầu tiên, kiểm tra đã cài đặt package Java Development Kit (Open JDK) chưa? Nhập command sau:
sudo apt list --installed | grep jdk
Ở trên máy mình đã cài sẵn 2 phiên bản là Open JDK 8 và 9. Trường hợp chưa có, bạn sử dụng command sau để thực hiện cài đặt Open JDK.
sudo apt-get update sudo apt-get install default-jdk
Tạo tài khoản cho Tomcat
Vì lý do bảo mật, Tomcat nên được chạy như một người dùng không có đặc quyền (tức là không phải là root).
# Tạo group "tomcat" sudo groupadd tomcat # Tạo user "tomcat" sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Với 2 câu lệnh trên, mình đã tạo 1 user là “tomcat” thuộc group “tomcat” có thư mục home ở /opt/tomcat (Nơi chúng ta thực hiện cài đặt Tomcat). Còn tham số -s /bin/false có nghĩa là đây là 1 dạng user mà không ai có thể login vào được.
Cài đặt Apache Tomcat
Các bạn tải phiên bản mới nhất của Tomcat tại đây: http://tomcat.apache.org/ Để tiến hành cài đặt các bạn thực hiện lần lượt các command sau:
# Chuyển tới thư mục tmp cd /tmp # Download Apache Tomcat 9 wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.zip # Giải nén Tomcat 9 và thư mục cài đặt sudo unzip apache-tomcat-9.0.26.zip -d /opt/tomcat
Update lại quyền cho thư mục cài đặt Apache Tomcat
# Chuyển đến thư mục /opt/tomcat cd /opt/tomcat mv apache-tomcat-9.0.26/* . # Cấp quyền sở hữu thư mục cài đặt cho group "tomcat" sudo chgrp -R tomcat /opt/tomcat sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh' sudo chown tomcat:tomcat -R /opt/tomcat # Cấp quyền đọc và thực thi cho thư mục conf sudo chmod -R g+r conf sudo chmod g+x conf # Cấp quyền sở hữu cho user "tomcat" mkdir -p webapps/work/temp/logs/ sudo chown -R tomcat webapps/work/temp/logs/
Thiết lập chạy Tomcat
Tạo mới file /etc/systemd/system/tomcat.service có nội dung như sau:
[Unit] Description=Tomcat 9 servlet container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/default-java" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Sau đó, thực hiện reload lại Systemd Daemon, để Systemd nhận dạng được dịch vụ bạn vừa tạo.
sudo systemctl daemon-reload
Khởi động Apache Tomcat
sudo systemctl start tomcat
Kiểm tra Apache Tomcat đã được bật chưa?
sudo systemctl status tomcat
Kiểm tra hoạt động
Bạn có thể vào giao diện đúng bằng cách nhập tên miền máy chủ hoặc địa chỉ IP của bạn theo cổng 8080 trong trình duyệt của bạn: https://localhost:8080
Hướng dẫn cài đặt Apache Tomcat trên CentOS
Đăng nhập root
Đăng nhập vào CentOS 7 VPS của bạn thông qua SSH như người dùng root
ssh root @ IP _Address
Đảm bảo rằng tất cả các gói đã cài đặt đều được cập nhật
yum -y update
Cài đặt Java 8
Apache Tomcat 9 yêu cầu Java 8 hoặc mới hơn sẽ được cài đặt trên máy chủ. Các gói Java 8 có sẵn trong kho lưu trữ CentOS 7 mặc định. Chạy lệnh sau để cài đặt Java 8
yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
Điều này sẽ cài đặt Java 8 và tất cả các phụ thuộc của nó. Sau khi cài đặt hoàn tất, bạn có thể kiểm tra phiên bản đã cài đặt bằng cách sử dụng lệnh sau
java -version
Bạn sẽ nhận được kết quả sau:
openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
Cài đặt Tomcat 9
Truy cập trang web chính thức của Apache Tomcat và tải xuống phiên bản phần mềm mới nhất cho máy chủ của bạn.
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.zip
Trong trường hợp đừng dẫn trên ngưng hoạt động, bạn dùng trình duyệt vào http://ftp.wayne.edu/apache/tomcat/ tìm bản mới nhất của TomCat.
Giải nén tệp nén zip đã tải xuống
unzip apache-tomcat-9.0.26.zip -d /opt
Lưu ý kiểm tra tên file nếu bạn tải bản mới nhất.
Điều này sẽ tạo một thư mục mới có tên ‘apache-tomcat-9.0.26.zip’.
cd /opt mv apache-tomcat-9.0.26/ tomcat
Chạy các lệnh sau để đặt biến môi trường CATALINA_HOME
echo "export CATALINA_HOME='/opt/tomcat/'" >> ~/.bashrc source ~/.bashrc
Không nên chạy Apache Tomcat trên tài khoản root, hãy tạo một người dùng hệ thống mới để chạy máy chủ Tomcat
useradd -r tomcat --shell /bin/false
Phân quyền cho thư mục script.
sh -c 'chmod +x /opt/tomcat/bin/*.sh'
Thay đổi quyền sở hữu của tất cả các tệp Tomcat
chown -R tomcat:tomcat /opt/tomcat/
Tạo tệp systemd với nội dung sau
vi /etc/systemd/system/tomcat.service [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/jre" Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
Lưu tệp và chạy lệnh sau để tải lại cấu hình trình quản lý systemd
systemctl daemon-reload
Cấu hình Tomcat 9
Bây giờ bạn có thể khởi động máy chủ Apache Tomcat 9 và cho phép nó khởi động
systemctl start tomcat systemctl enable tomcat
Bạn có thể kiểm tra trạng thái của máy chủ Tomcat 9 và xác nhận rằng nó được cài đặt đúng bằng cách thực hiện lệnh sau
systemctl status tomcat
Đầu ra:
tomcat.service - Apache Tomcat 9 Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled) Active: active (exited) since Wed 2018-04-11 05:59:13 CDT; 2min 31s ago Process: 1091 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 1091 (code=exited, status=0/SUCCESS) CGroup: /system.slice/tomcat.service └─1106 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048
Bây giờ bạn có thể truy cập máy chủ Tomcat trong trình duyệt web ưa thích của bạn. Apache Tomcat theo mặc định là listen port 8080, vì vậy mở trình duyệt và điều hướng đến http://IP_address:8080 và bạn sẽ thấy trang chủ của Apache Tomcat.
Tạo tài khoản người dùng Tomcat 9
Bạn có thể tạo một người dùng Tomcat mới để có thể access người quản lý Tomcat. Mở tệp tomcat-users.xml và thêm các dòng sau:
vi /opt/tomcat/conf/tomcat-users.xml <role rolename="admin-gui" /> <user username="admin" password="PASSWORD" roles="manager-gui,admin-gui" </tomcat-users>
Đừng quên thay thế PASSWORD bằng mật khẩu mạnh thực sự.
Theo mặc định, Tomcat Manager chỉ có thể truy cập từ một trình duyệt đang chạy trên cùng một máy với Tomcat. Nếu bạn muốn loại bỏ hạn chế này, bạn sẽ cần phải chỉnh sửa tệp context.xml của Trình quản lý và nhận xét hoặc xóa dòng sau:
vi /opt/tomcat/webapps/manager/META-INF/context.xml <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
Khởi động lại máy chủ Apache Tomcat để các thay đổi có hiệu lực.
systemctl restart tomcat
Bây giờ, bạn sẽ có thể truy cập Trình quản lý Tomcat của Apache bằng cách nhấp vào nút ‘Manager App’ trên trang chủ hoặc trực tiếp tại http://IP_address:8080/manager/html sử dụng ‘admin’ và mật khẩu ‘PASSWORD’ của người dùng
Hy vọng với những chia sẻ cực kỳ hữu ích trên, bạn đã hiểu hơn về Apache là gì. Chúc bạn thành công trong việc cài đặt cũng như ứng dụng Apache đạt hiệu quả tốt nhất.
Chuyên gia SEO và yêu thích lập trình Website, đặc biệt với nền tảng WordPress.