BÁO CÁO ĐỒ ÁNĐỀ TÀI : Tìm hiểu Virtual Host trên môi trường Linux/ CentOS7

45 22 0
BÁO CÁO ĐỒ ÁNĐỀ    TÀI   : Tìm hiểu Virtual Host trên môi trường Linux/ CentOS7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO ĐỒ ÁN ĐỀ TÀI: Tìm hiểu Virtual Host môi trường Linux/ CentOS7 GVHD: BÙI TRỌNG VIÊN Sinh viên: NGUYỄN HỮU HOÀI MUC LUC LỜI CẢM ƠN LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VIRTUAL HOST Giới thiệu mơ hình virtual host: Máy chủ HTTP Apache máy chủ web sử dụng rộng rãi giới Nó cung cấp nhiều tính mạnh mẽ bao gồm mơ-đun tải động, hỗ trợ phương tiện mạnh mẽ tích hợp rộng rãi với phần mềm phổ biến khác Một máy web server cấu hình cho trang web riêng, muốn cấu hình thêm trang web thiết bị web server đó, khó khăn với virtual host - máy chủ ảo, cần cấu hình thích hợp, thiết bị web server tồn nhiều trang web hoạt động Điều giúp tiết kiệm nguồn tài nguyên thiết bị web server, hỗ trợ mạnh cho doanh nghiệp có nguồn vốn lưu động nhỏ Phần mềm apache hỗ trợ lập trình viên tạo website, đơn vị công ty yêu cầu cần nhiều hai trang web để phuc vụ mục đích công ty Khái niệm Virtual Host: Virtual host phương thức đề cập tới việc chạy nhiều trang web máy (vd: co1.example.com, co2.example.com ) Có khái niệm khác đề cập tới Nginx có chức tương tự Virtual Host gọi Server Block Với Nginx, gọi Server Block, cịn với người dùng Apache, gọi Virtual host Hiểu “tên ảo” dùng để chạy nhiều tên miền địa IP Server hay VPS Virtual host định nghĩa chức nhúng nhiều tên miền vào địa IP Server Và cách cài đặt riêng, Server nhận biết tên miền hoạt động folder Điều mang ý nghĩa lớn không cần tên miền địa IP mà cần server nhúng hàng trăm tên miền hoạt động Virtual host có dạng:  Có thể dựa địa IP, nghĩa có địa IP riêng biệt cho web site Sử dụng địa ip khác cho domain gọi ip-based virtual hosting Như vậy, máy tính phải có nhiều interface, sử dụng chế virtual Interface  Hoặc dựa theo tên máy, nghĩa có nhiều tên địa gọi namedbased virtual hosing Chỉ cần cấu hình DNS cho phân giải tên máy với địa IP sau cấu hình Apache để tổ chức web server cho miền khác Chức năng: giúp ta trì nhiều web server máy tính Điều đặc biệt hữu ích bạn khơng muốn chi tiền cho nhiều Máy chủ riêng ảo (VPS), bạn muốn có khả chạy xây dựng nhiều trang web với chi phí tối thiểu máy chủ Trong kịch giới thực, hầu hết trang web dựa hệ thống quản lý nội dung phổ biến Wordpress, Drupal, Joomla, v.v Ý tưởng nằm chỗ thay có thư mục gốc cho trang web bạn (đó /var/www/html/ ví dụ chúng tơi), bạn có nhiều thư mục nằm /var/www/ thư mục chứa trang web riêng Nguyên lý hoạt động: Tạo môi trường cho máy chủ web chạy từ trang web trở lên Mỗi tên miền cấu hình đưa người dùng đến đường dẫn cụ thể lưu trữ thơng tin trang web đó, mà khơng quan tâm đến server lưu trữ nhiều trang web khác Cấu trúc mở rộng bất chấp giới hạn phần mềm, miễn server xử lí lưu lượng truy cập tất website Vd Khi ta làm việc với apache localhost (dùng xampp, ampps,…) đơi lúc ta có nhiều project quá, khó nhớ, kèm đường link dài như: localhost/project_abc localhost/xyz … Thậm chí có ta cịn phải vào cấp localhost/abc/xyz, với Laravel có cấp: localhost/abc/xyz/public/ Khá dài, bất tiện phải không bạn Vậy nên tạo VirtualHost giúp giải việc Ví dụ: thay ta phải vào localhost/abc/xyz/public ta cần đơn giản xyz.com Các port sử dụng: 80, 8080, …(web) CHƯƠNG 2: CÀI ĐẶT Một phần thiếu máy chủ web (bao gồm Apache, Nginx, Lighttpd…) chạy nhiều web server Bạn thêm domain vào máy chủ cấu hình chúng riêng rẽ Mỗi cấu gọi virtual host Mỗi virtual host quy định cho tên miền riêng biệt Bạn tạo vô số virtual host để thêm domain vào VPS chạy nhiều web server Cài đặt cấu hình DNS: Server: 192.168.1.10 www.web.com Đăng ký DNS Điều quán trọng bạn cần phải khai báo tất tên miền bạn muốn dùng với Apache máy chủ DNS Nếu bạn khai báo thoải mái tên khác conf (hay apache.conf) mà máy chủ DNS khơng có thơng tin tên người dùng khơng thấy trang web bạn Ví dụ có tên miền đăng ký online nghĩa sử dụng external network bạn đặt tên truy cập vào tên miền request bạn gửi tới server online trả lại trang web bạn không mong muốn, đăng ký DNS local việc sử dụng internal network truy cập vào tên miền bạn tìm kiếm host local trước Mở file /etc/hosts Cài đặt phần mềm Apache: yum install httpd -y Cấu hình Apache: lưu ý Việc cài đặt diễn nhanh chóng, trước cấu hình chi tiết Apache(httpd) bạn nên backup file config để phịng trường hợp sai sót cịn có phục hồi lại cp /etc/httpd/conf/httpd.conf ~/httpd.conf.bak Câu lệnh tạo file dự phịng có tên httpd.conf.bak profile root Trong linux file backup có thói quen thêm phần mở rộng bak muốn khơi phục cấu hình mặc định cần sửa lại tên file Kiểm tra hostname lệnh hostname lệnh cho kết đầy đủ dạng FQDN hostname -f thị hostname dạng ngắn gọn vi /etc/httpd/conf/httpd.conf KeepAlive On StartServers MinSpareServers MaxSpareServers 10 MaxClients 80 MaxRequestsPerChild 3000 KeepAlive: chức trì connection đóng sau khoảng thời gian timeout định, không cấu hình cách làm tăng lượng memory khơng giải phóng tài ngun … : khai báo dùng module MPM prefork để process xử lý request StartServers: thông số quy định số process sinh khởi động Apache MinSpareServers, MaxSpareServers: quy định số process nhàn rỗi nhỏ lớn sinh để chờ xử lý request từ client MaxClients: số requests xử lý đồng thời MaxRequestsPerChild: giới hạn số requests tối đa đến web server, giá trị có nghĩa khơng giới hạn, giá trị thấp làm giảm hiệu suất requests phải đợi để xử lý KHỞI ĐỘNG LẠI APACHE CentOS chạy lệnh systemctl restart httpd.service Xem dịch vụ httpd (apache) mpm prefork start hay chưa dùng lệnh sau cat /etc/httpd/logs/error_log | grep prefork netstat -tulpn Kết start thành công rồi, Module pmp prefork, apache chạy với pid 20149, Web server lắng nghe port 80 Cấu hình virtual host: Bây Apache tối ưu, muốn chạy nhiều website VPS bạn phải tạo Virtual Hosts cho Apache Nói chung thì, kể có chạy website nên tạo Virtual Hosts sau muốn cài cắm thêm dễ TẠO THƯ MỤC CẦN THIẾT VÀ PHÂN QUYỀN mkdir -p /var/www/web.com/public_html mkdir -p /var/www/web.com /logs mkdir -p /var/www/web.com /backup Khi triển khai trang web tạo thư mục có tên domain trang web, có folder: public_html: bạn để sourcecode trang web vào logs: để chứa log trang web backup: chứa file backup định kỳ file cấu hình Bạn phải chuyển quyền sở hữu sang cho user apache user quản trị webserver chown -R apache:apache /var/www/ web.com Tham số -R chuyển toàn thư mục bao gồm files subfolder từ root sang cho apache TẠO VIRTUAL HOSTS Trong thư mục conf.d tạo file vhosts.conf file chứa cấu hình Virtual hosts Bên mẫu cho web web.com, bạn thay đổi giá trị cho phù hợp với domain bạn Trước hết, mở lại file vi /etc/httpd/conf/httpd.conf thêm vào dòng bên NameVirtualHost *:80 Rồi mở file vi /etc/httpd/conf.d/vhost.conf thêm vào config bên ServerAdmin admin@web.com ServerName web.com ServerAlias www.web.com DocumentRoot /var/www/web.com/public_html/ ErrorLog /var/www/web.com/logs/error.log CustomLog /var/www/web.com/logs/access.log combined VirtualHost *:80: port dùng cho trang web có domain mơ tả ServerAlias DocumentRoot: đường dẫn đến thư mục chứa sourcecode ServerAdmin: đơn giản mail quản trị viện ServerName: root domain virtual host người dùng gõ trình duyệt ServerAlias: tên gọi khác root domain, cịn dùng để cấu hình www non www ErrorLog: ghi lại log lỗi phát sinh CustomLog: ghi lại log truy cập Bạn nên cấu hình ghi lại log cho web server để debug theo dõi truy cập nguồn liệu quan trọng tạo sở để cấu hình web server thiết lập tường lửa, cần tối ưu tốc độ bạn tạm thời vơ hiệu hóa Nói chung khơng có phức tạp cả, từ muốn thêm trang web khác bạn việc thêm tiếp … xong Hoặc bạn tách cặp thẻ Virtual Host file, đặt đuôi mở rộng conf cách hay để quản lý nhiều domain Tạo web thử nghiệm: TẠO INDEX.HTML TEST WEB SERVER Muốn biết Virtual Hosts hoạt động tạo file index.html đơn giản vi/var/www/web.com/public_html/index.html Với nội dung sau: Welcome Web Web 10 Kiểm tra thử nghiệm: CẤU HÌNH CHO APACHE KHỞI ĐỘNG CÙNG MÁY CHỦ systemctl enable httpd.service Thế xong từ webserver tự khởi động start VPS Xong mở trình duyệt truy cập domain thuysys.com xem để kiểm tra dùng lệnh curl -I http://www.web.com trả vềkết bên thành công [root@srv1 ~]# curl -I http://www.web.com HTTP/1.1 200 OK KÊT LUẬN Các thao tác đơn giản tạo Vhost giống với tên miền thật Bạn cấu hình server cho riêng bạn Với Apache khơng có giới hạn số lượng domain quản lý ta thoại mái tạo server để handling (xử lý) Tương tự cấu hình Vhost với WAMP, APPServer, USBServer cấu hình khơng khác nhiều Vì tất phần mềm dùng Apache, Mysql PHP Vhost tình Apache nên cấu hình Vhost theo cách tương tự, điểm khác biệt khác nơi đặt file httpd.conf TÀI LIỆU THAM KHẢO Nhiều máy chủ ảo CentOS RHEL Bước 1: Trỏ tên miền Trỏ lưu lượng truy cập web tên miền bạn vào máy chủ bạn theo yêu cầu nhà cung cấp tên miền bạn Về bản, điều có nghĩa bạn cần tạo ghi phân giải thành IP máy chủ web bạn Bước 2: Thêm máy chủ ảo vào cấu hình máy chủ web Giả sử muốn xây dựng trang web có tên cutepuppies.com tệp thư mục cấu hình có liên quan máy chủ đặt tên tương ứng cutepuppies Tạo thư mục gốc riêng cho trang web bạn: mkdir /var/www/cutepuppies Trao quyền sở hữu thư mục cho người dùng web Apache (đó apache ) chown apache:apache -R /var/www/cutepuppies Ngồi ra, bạn hành động khơng thuộc tài khoản root, thêm tên người dùng bạn vào nhóm web: usermod -aG apache YOUR_USER_NAME Giả sử bạn có cài đặt Apache mới, khơng biết có nhiều trang web Chúng cần làm cho máy chủ web bạn để tìm kiếm tệp cấu hình cho trang web tạo tương lai Tới /etc/httpd/conf/httpd.conf thêm dòng vào tệp: IncludeOptional sites-enabled/*.conf Kiểm tra thư mục cấu hình Apache / etc / httpd Bạn cần phải xóa hai thư mục chúng không tồn tại: / etc / httpd / sites- Available / etc / httpd / sitesenable Truy cập / etc / httpd / sites- Available tạo tập tin cấu hình cutepuppies.conf Để làm cho trang web bạn hoạt động, tệp phải chứa liệu sau: ServerName www.cutepuppies com ServerAlias cutepuppies.com DocumentRoot /var/www/cutepuppies/ Khi tệp cấu hình bạn sẵn sàng, bạn cần kích hoạt Tạo liên kết sympolic đến tệp cấu hình bạn thư mục kích hoạt trang web để: ln -s /etc/httpd/sites-available/cutepuppies.conf /etc/httpd/sitesenabled/cutepuppies.conf Bây để làm cho hoạt động sau thay đổi, bạn cần tải lại cấu hình máy chủ web bạn: systemctl restart httpd Bây bạn sẵn sàng để giải nén trang web bạn vào thư mục gốc / var / www / cutepuppies /, trang web truy cập tên miền bạn Note: Để phiên www tên miền xác định đúng, cấu hình DNS phải có A record CNAME để chuyển thông điệp www thành địa IP server Một wildcard (*) record sử dụng Cuối cùng, ta đặt DocumentRoot thư mục web, đồng thời cấu hình Apache để lưu trữ log error ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/public_html ErrorLog /var/www/example.com/error.log CustomLog /var/www/example.com/requests.log combined Lưu đóng file xong Copy Virtual Host tuỳ chỉnh cho tên miền khác Sau cấu hình xong virtual host, ta tạo cách copy file cấu hình virtual host tạo sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesavailable/example2.com.conf Mở file nano: sudo nano /etc/httpd/sites-available/example2.com.conf Thay đổi giá trị tên miền cho thích hợp: (chú ý phần chữ đỏ) ServerName www.example2.com DocumentRoot /var/www/example2.com/public_html ServerAlias example2.com ErrorLog /var/www/example2.com/error.log CustomLog /var/www/example2.com/requests.log combined Bước 5— Kích hoạt file virtual Host Sau tạo file cấu hình ta cần kích hoạt chúng để Apache dùng chúng phục vụ người dùng Ở đây, ta tạo liên kết tượng trưng( symbolic link) cho thư mục sitesenabled virtual host: sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesenabled/example.com.conf sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sitesenabled/example2.com.conf Restart Apache để lưu thay đổi sudo apachectl restart Bước — Cài đặt File Local Host (Tùy chọn) Nếu bạn sử dụng tên miền ví dụ thay tên miền thật mình, bạn kiểm tra tính virtual host việc thay đổi tạm thời file hosts máy tính cá nhân bạn Điều chặn tất yêu cầu đến tên miền bạn cấu hình điều hướng chúng tới VPS bạn giống cách hệ thống DNS thực với tên miền thật, hoạt động máy tính bạn Note: Đảm bảo bạn thao tác máy tính bạn khơng phải VPS server bạn cần truy cập đến quyền admin Với hệ điều hành Mac hay Linux, edit file hosts với quyền admin ( quyền root) với lệnh: sudo nano /etc/hosts Nếu bạn dùng Window, tự cài cho Linux việc cần thiết Nếu không truy cập vào Những thông số cần thêm vào : public IP address VPS tên miền bạn muốn dùng để truy cập đến VPS 127.0.0.1 localhost 127.0.1.1 guest-desktopserver_ip_address example.comserver_ip_address example2.com Tất yêu cầu truy cập vào example.com example2.com điều hướng từ máy tính bạn đến server qua server_ip_address Bước — Test kết Truy cập trang sau từ trình duyệt: http://example.com Trang hiển thị sau: Giới thiệu Máy chủ web Apache cách phục vụ nội dung web phổ biến Internet Nó phục vụ nửa số tất trang web hoạt động Internet mạnh mẽ linh hoạt Apache chia chức thành phần thành đơn vị riêng lẻ tùy chỉnh cấu hình độc lập Đơn vị mơ tả trang web tên miền riêng lẻ gọi máy chủ ảo Máy chủ ảo cho phép máy chủ lưu trữ nhiều tên miền giao diện cách sử dụng hệ thống phù hợp Điều có liên quan đến muốn lưu trữ nhiều trang web VPS Mỗi tên miền định cấu hình hướng khách truy cập đến thư mục cụ thể chứa thơng tin trang web mà khơng máy chủ chịu trách nhiệm cho trang web khác Lược đồ mở rộng mà khơng có giới hạn phần mềm nào, miễn máy chủ bạn xử lý lưu lượng truy cập mà tất trang web thu hút Trong hướng dẫn này, hướng dẫn cách thiết lập máy chủ ảo Apache VPS CentOS Trong trình này, bạn tìm hiểu cách phục vụ nội dung khác cho khách truy cập khác tùy thuộc vào tên miền họ yêu cầu Điều kiện tiên Trước bạn bắt đầu với hướng dẫn này, có vài bước cần phải hoàn thành trước Bạn cần quyền truy cập vào máy chủ CentOS với người dùng khơng phải root có sudođặc quyền Nếu bạn chưa định cấu hình này, bạn chạy qua hướng dẫn thiết lập máy chủ ban đầu CentOS để tạo tài khoản Bạn cần phải cài đặt Apache để định cấu hình máy chủ ảo cho Nếu bạn chưa làm vậy, bạn sử dụng yumđể cài đặt Apache thơng qua kho phần mềm mặc định CentOS: sudo yum -y install httpd Tiếp theo, kích hoạt Apache dạng dịch vụ CentOS để tự động khởi động sau khởi động lại: sudo systemctl enable httpd.service Sau bước hoàn tất, đăng nhập với tư cách tài khoản người dùng root bạn thông qua SSH tiếp tục với hướng dẫn Lưu ý: Cấu hình ví dụ hướng dẫn tạo máy chủ ảo cho example.comvà máy chủ ảo khác example2.com Chúng tham chiếu suốt hướng dẫn, bạn nên thay tên miền giá trị riêng bạn làm theo Để tìm hiểu cách thiết lập tên miền bạn với DigitalOcean, theo liên kết Nếu bạn khơng có tên miền thực để chơi, cho bạn cách kiểm tra cấu hình máy chủ ảo bạn với giá trị giả gần cuối hướng dẫn Bước - Tạo cấu trúc thư mục Đầu tiên, cần tạo cấu trúc thư mục chứa liệu trang web để phục vụ khách truy cập Tài liệu gốc (thư mục cấp cao mà Apache nhìn vào để tìm nội dung cần phân phát) đặt thành thư mục riêng lẻ /var/wwwthư mục Chúng tạo thư mục cho máy chủ ảo mà dự định thực Trong thư mục này, tạo public_htmlthư mục chứa tệp thực tế Điều cho số linh hoạt lưu trữ chúng tơi Chúng ta tạo thư mục mkdirlệnh (với -pcờ cho phép tạo thư mục có thư mục lồng bên nó): sudo mkdir -p /var/www/example.com/public_html sudo mkdir -p /var/www/example2.com/public_html Hãy nhớ phần màu đỏ đại diện cho tên miền mà muốn phục vụ từ VPS Bước hai - Cấp quyền Bây chúng tơi có cấu trúc thư mục cho tệp chúng tôi, chúng sở hữu rootngười dùng Nếu chúng tơi muốn người dùng thường xun sửa đổi tệp thư mục web mình, chúng tơi thay đổi quyền sở hữu với chown: sudo chown -R $USER:$USER /var/www/example.com/public_html sudo chown -R $USER:$USER /var/www/example2.com/public_html Các $USERbiến giá trị người dùng mà bạn đăng nhập bạn gửi lệnh Bằng cách này, người dùng thông thường sở hữu public_htmlthư mục nơi lưu trữ nội dung Chúng nên sửa đổi quyền chút để đảm bảo quyền truy cập đọc phép vào thư mục web chung tất tệp thư mục bên trong, để trang phục vụ xác: sudo chmod -R 755 /var/www Máy chủ web bạn có quyền cần thiết để phân phát nội dung người dùng bạn tạo nội dung thư mục phù hợp Bước ba - Tạo trang demo cho máy chủ ảo Bây có cấu trúc thư mục mình, tạo số nội dung để phục vụ Bởi để trình diễn thử nghiệm, trang đơn giản Chúng tạo index.htmltrang cho trang web xác định tên miền cụ thể Hãy bắt đầu với example.com Chúng tơi mở index.htmltệp trình chỉnh sửa cách nhập: nano /var/www/example.com/public_html/index.html Trong tệp này, tạo tài liệu HTML đơn giản cho biết trang web mà trang kết nối Đối với hướng dẫn này, tệp cho tên miền trông này: Welcome to Example.com! Success! The example.com virtual host is working! Lưu đóng tệp bạn hồn thành Chúng tơi chép tệp để sử dụng làm mẫu cho trang web thứ hai index.htmlbằng cách nhập: cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html Bây mở tệp sửa đổi thơng tin có liên quan: nano /var/www/example2.com/public_html/index.html Welcome to Example2.com! Success! The example2.com virtual host is working! Lưu đóng tập tin tốt Bây bạn có trang cần thiết để kiểm tra cấu hình máy chủ ảo Bước bốn - Tạo tập tin máy chủ ảo Các tệp máy chủ ảo định cấu hình trang web riêng biệt cách máy chủ web Apache đáp ứng yêu cầu miền khác Để bắt đầu, cần thiết lập thư mục mà máy chủ ảo lưu trữ, thư mục thông báo cho Apache máy chủ ảo sẵn sàng phục vụ khách truy cập Thư mục sites-availablesẽ giữ tất tệp máy chủ ảo chúng tôi, sites-enabledthư mục giữ liên kết tượng trưng đến máy chủ ảo mà muốn xuất Chúng ta tạo hai thư mục cách gõ: sudo mkdir /etc/httpd/sites-available sudo mkdir /etc/httpd/sites-enabled Lưu ý: Bố cục thư mục giới thiệu người đóng góp Debian, chúng tơi đưa vào để tăng tính linh hoạt với việc quản lý máy chủ ảo chúng tơi (vì dễ dàng để tạm thời bật tắt máy chủ ảo theo cách này) Tiếp theo, nên bảo Apache tìm kiếm máy chủ ảo sites-enabledthư mục Để thực điều này, chúng tơi chỉnh sửa tệp cấu hình Apache thêm dịng khai báo thư mục tùy chọn cho tệp cấu hình bổ sung: sudo nano /etc/httpd/conf/httpd.conf Thêm dòng vào cuối tập tin: IncludeOptional sites-enabled/*.conf Lưu đóng tệp bạn hồn tất việc thêm dịng Bây chúng tơi sẵn sàng để tạo tập tin máy chủ ảo Tạo tập tin máy chủ ảo Bắt đầu cách mở tệp trình chỉnh sửa bạn với quyền root: sudo nano /etc/httpd/sites-available/example.com.conf Lưu ý: Do cấu hình mà chúng tơi phác thảo, tất tệp máy chủ ảo phải kết thúc conf Trước tiên, bắt đầu cách tạo cặp thẻ định nội dung dạng máy chủ ảo nghe cổng 80 (cổng HTTP mặc định): Tiếp theo khai báo tên máy chủ chính, www.example.com Chúng tơi tạo bí danh máy chủ để trỏ đến example.com , để yêu cầu cho www.example.com example.com cung cấp nội dung: ServerName www.example.com ServerAlias example.com Lưu ý: Để wwwphiên tên miền hoạt động xác, cấu hình DNS tên miền cần ghi A CNAME trỏ wwwcác yêu cầu tới IP máy chủ Một *bản ghi ký tự đại diện ( ) hoạt động Để tìm hiểu thêm ghi DNS, xem hướng dẫn thiết lập tên máy chủ Cuối cùng, kết thúc cách vào thư mục gốc tài liệu web truy cập cơng khai Chúng cho Apache biết nơi lưu trữ lỗi yêu cầu nhật ký cho trang web cụ thể này: ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/public_html ErrorLog /var/www/example.com/error.log CustomLog /var/www/example.com/requests.log combined Khi bạn viết xong mục này, bạn lưu đóng tệp Sao chép máy chủ ảo tùy chỉnh cho tên miền bổ sung Bây thiết lập tệp máy chủ ảo đầu tiên, tạo tệp thứ hai cách chép tệp điều chỉnh cần Bắt đầu cách chép cp: sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesavailable/example2.com.conf Mở tệp với quyền root trình soạn thảo văn bạn: sudo nano /etc/httpd/sites-available/example2.com.conf Bây bạn cần sửa đổi tất phần thông tin để tham chiếu tên miền thứ hai bạn Khi bạn kết thúc, tệp máy chủ ảo thứ hai bạn trơng giống này: ServerName www.example2.com DocumentRoot /var/www/example2.com/public_html ServerAlias example2.com ErrorLog /var/www/example2.com/error.log CustomLog /var/www/example2.com/requests.log combined Khi bạn hoàn thành việc thực thay đổi này, bạn lưu đóng tệp Bước năm - Kích hoạt tệp máy chủ ảo Bây tạo tệp máy chủ ảo, chúng tơi cần kích hoạt chúng để Apache biết để phục vụ chúng cho khách truy cập Để làm điều này, tạo liên kết tượng trưng cho máy chủ ảo sites-enabledthư mục: sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesenabled/example.com.conf sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sitesenabled/example2.com.conf Khi bạn kết thúc, khởi động lại Apache để thay đổi có hiệu lực: sudo apachectl restart Bước sáu - Thiết lập tệp máy chủ cục (Tùy chọn) Nếu bạn sử dụng tên miền ví dụ thay tên miền thực tế để kiểm tra quy trình này, bạn kiểm tra chức máy chủ ảo cách tạm thời sửa đổi hoststệp máy tính cục Điều chặn yêu cầu tên miền mà bạn định cấu hình trỏ chúng đến máy chủ VPS bạn, giống hệ thống DNS làm bạn sử dụng tên miền đăng ký Điều hoạt động từ máy tính bạn, đơn giản hữu ích cho mục đích thử nghiệm Lưu ý: Đảm bảo bạn vận hành máy tính cục cho bước khơng phải máy chủ VPS bạn Bạn cần truy cập vào thơng tin quản trị cho máy tính Nếu bạn sử dụng máy tính Mac Linux, chỉnh sửa hoststệp cục đặc quyền quản trị cách nhập: sudo nano /etc/hosts Nếu bạn sử dụng máy Windows, bạn tìm thấy hướng dẫn việc thay đổi tệp máy chủ Các chi tiết bạn cần thêm địa IP công cộng VPS theo sau tên miền bạn muốn sử dụng để truy cập VPS đó: 127.0.0.1 localhost 127.0.1.1 guest-desktop server_ip_address example.com server_ip_address example2.com Điều dẫn yêu cầu cho example.comvà example2.comtrên máy tính cục gửi chúng đến máy chủ server_ip_address Bước Bảy - Kiểm tra kết bạn Bây bạn cấu hình máy chủ ảo mình, bạn kiểm tra thiết lập cách dễ dàng cách truy cập tên miền mà bạn định cấu hình trình duyệt web mình: http://example.com Bạn thấy trang trông này: Tương tự vậy, bạn truy cập tên miền khác mình, bạn thấy tệp mà bạn tạo cho chúng Nếu tất trang web mà bạn cấu hình hoạt động tốt, bạn cấu hình thành cơng máy chủ ảo Apache máy chủ CentOS Nếu bạn điều chỉnh hoststệp máy tính nhà , bạn muốn xóa dịng mà bạn thêm mà bạn xác minh cấu hình bạn hoạt động Điều ngăn tập tin máy chủ bạn lấp đầy với mục không thực cần thiết Phần kết luận Tại thời điểm này, bạn có máy chủ CentOS xử lý nhiều trang web với tên miền riêng biệt Bạn mở rộng quy trình cách làm theo bước nêu để tạo thêm máy chủ ảo sau Khơng có giới hạn phần mềm số lượng tên miền mà Apache xử lý, đó, thoải mái tạo nhiều máy chủ bạn có khả xử lý Giới thiệu Máy chủ HTTP Apache máy chủ web sử dụng rộng rãi giới Nó cung cấp nhiều tính mạnh mẽ bao gồm mơ-đun tải động, hỗ trợ phương tiện mạnh mẽ tích hợp rộng rãi với phần mềm phổ biến khác Trong hướng dẫn này, bạn cài đặt máy chủ web Apache với máy chủ ảo máy chủ CentOS Điều kiện tiên Bạn cần điều sau để hồn thành hướng dẫn này: Người dùng khơng phải root với đặc quyền sudo định cấu hình máy chủ bạn, thiết lập cách làm theo hướng dẫn thiết lập máy chủ ban đầu cho CentOS Một tường lửa cấu hình cách làm theo bước đề xuất bổ sung chohướng dẫn Máy chủ CentOS Bước - Cài đặt Apache Apache có sẵn kho phần mềm mặc định CentOS, có nghĩa bạn cài đặt với yumtrình quản lý gói Khi người dùng sudo khơng root cấu hình điều kiện tiên quyết, cập nhật httpdchỉ mục gói Apache cục để phản ánh thay đổi ngược dịng nhất: sudo yum update httpd Khi gói cập nhật, cài đặt gói Apache: sudo yum install httpd Sau xác nhận cài đặt, yumsẽ cài đặt Apache tất phụ thuộc cần thiết Sau cài đặt hoàn tất, bạn sẵn sàng để bắt đầu dịch vụ Bước - Kiểm tra máy chủ web bạn Apache không tự động khởi động CentOS sau q trình cài đặt hồn tất Bạn cần bắt đầu quy trình Apache theo cách thủ công: sudo systemctl start httpd Xác minh dịch vụ chạy với lệnh sau: sudo systemctl status httpd Bạn thấy activetrạng thái dịch vụ chạy: Output Redirecting to /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests " CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND Như bạn thấy từ đầu này, dịch vụ dường bắt đầu thành công Tuy nhiên, cách tốt để kiểm tra điều yêu cầu trang từ Apache Bạn truy cập trang đích Apache mặc định để xác nhận phần mềm chạy thông qua địa IP bạn Nếu bạn địa IP máy chủ mình, bạn lấy theo số cách khác từ dịng lệnh Nhập vào dấu nhắc lệnh máy chủ bạn: hostname -I Lệnh hiển thị tất địa mạng máy chủ lưu trữ, bạn nhận lại vài địa IP phân tách dấu cách Bạn thử trình duyệt web để xem chúng có hoạt động khơng Ngồi ra, bạn sử dụng curlđể u cầu IP từ icanhazip.comđó cung cấp cho bạn địa IPv4 công khai bạn thấy từ vị trí khác internet: curl -4 icanhazip.com Khi bạn có địa IP máy chủ, nhập vào địa trình duyệt: http://your_server_ip Bạn thấy trang web CentOS Apache mặc định: Trang Apache hoạt động xác Nó bao gồm số thông tin tệp vị trí thư mục quan trọng Apache Bây dịch vụ cài đặt chạy, bạn sử dụng systemctllệnh khác để quản lý dịch vụ Bước - Quản lý quy trình Apache Bây bạn có máy chủ web hoạt động, xem qua số lệnh quản lý Để dừng máy chủ web bạn, gõ: sudo systemctl stop httpd Để khởi động máy chủ web dừng, gõ: sudo systemctl start httpd Để dừng sau bắt đầu lại dịch vụ, gõ: sudo systemctl restart httpd Nếu bạn đơn giản thực thay đổi cấu hình, Apache thường tải lại mà khơng làm kết nối Để làm điều này, sử dụng lệnh này: sudo systemctl reload httpd Theo mặc định, Apache cấu hình để bắt đầu tự động máy chủ khởi động Nếu điều bạn muốn, tắt hành vi cách nhập: sudo systemctl disable httpd Để kích hoạt lại dịch vụ để khởi động khởi động, gõ: sudo systemctl enable httpd Bây Apache tự động khởi động máy chủ khởi động lại Cấu hình mặc định cho Apache cho phép máy chủ bạn lưu trữ trang web Nếu bạn có kế hoạch lưu trữ nhiều tên miền máy chủ mình, bạn cần định cấu hình máy chủ ảo máy chủ web Apache Bước - Thiết lập máy chủ ảo (Được khuyến nghị) Khi sử dụng máy chủ web Apache, bạn sử dụng máy chủ ảo (tương tự khối máy chủ Nginx) để đóng gói chi tiết cấu hình lưu trữ nhiều tên miền từ máy chủ Trong bước này, bạn thiết lập tên miền gọi example.com, bạn nên thay tên miền tên miền riêng bạn Để tìm hiểu thêm cách thiết lập tên miền với DigitalOcean, xem Giới thiệu DNS DigitalOcean Apache CentOS có khối máy chủ bật theo mặc định cấu hình để phục vụ tài liệu từ /var/www/htmlthư mục Mặc dù điều hoạt động tốt cho trang web, trở nên khó sử dụng bạn lưu trữ nhiều trang web Thay sửa đổi /var/www/html, bạn tạo cấu trúc thư mục /var/wwwcho example.comtrang web, để lại /var/www/htmlở vị trí thư mục mặc định để phục vụ yêu cầu khách hàng không phù hợp với trang web khác Tạo htmlthư mục example.comnhư sau, sử dụng -pcờ để tạo thư mục mẹ cần thiết nào: sudo mkdir -p /var/www/example.com/html Tạo thư mục bổ sung để lưu trữ tệp nhật ký cho trang web: sudo mkdir -p /var/www/example.com/log Tiếp theo, gán quyền sở hữu htmlthư mục với $USERbiến môi trường: sudo chown -R $USER:$USER /var/www/example.com/html Đảm bảo web root bạn có quyền mặc định đặt: sudo chmod -R 755 /var/www Tiếp theo, tạo index.htmltrang mẫu cách sử dụng vihoặc trình chỉnh sửa u thích bạn: sudo vi /var/www/example.com/html/index.html Nhấn iđể chuyển sang INSERTchế độ thêm HTML mẫu sau vào tệp: /var/www/example.com/html/index.html Welcome to Example.com! Success! The example.com virtual host is working! Lưu đóng tệp cách nhấn ESC, gõ :wqvà nhấn ENTER Với thư mục trang web tệp mục mẫu chỗ, bạn gần sẵn sàng để tạo tệp máy chủ ảo Các tệp máy chủ ảo định cấu hình trang web riêng biệt bạn cho máy chủ web Apache biết cách đáp ứng yêu cầu tên miền khác Trước bạn tạo máy chủ ảo, bạn cần tạo sites-availablethư mục để lưu trữ chúng Bạn tạo sites-enabledthư mục thông báo cho Apache máy chủ ảo sẵn sàng phục vụ khách truy cập Thư mục sites-enabledsẽ chứa liên kết tượng trưng đến máy chủ ảo mà muốn xuất Tạo hai thư mục lệnh sau: sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled Tiếp theo, bạn bảo Apache tìm kiếm máy chủ ảo sites-enabledthư mục Để thực điều này, chỉnh sửa tệp cấu hình Apache thêm dòng khai báo thư mục tùy chọn cho tệp cấu hình bổ sung: sudo vi /etc/httpd/conf/httpd.conf Thêm dòng vào cuối tập tin: IncludeOptional sites-enabled/*.conf Lưu đóng tệp bạn hồn tất việc thêm dịng Bây bạn có thư mục máy chủ ảo mình, bạn tạo tệp máy chủ ảo Bắt đầu cách tạo tệp sites-availablethư mục: sudo vi /etc/httpd/sites-available/example.com.conf Thêm vào khối cấu hình sau thay đổi example.comtên miền thành tên miền bạn: /etc/httpd/sites-av Available / example.com ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined Điều cho Apache biết nơi tìm gốc trực tiếp chứa tài liệu web truy cập cơng khai Nó cho Apache biết nơi lưu trữ lỗi yêu cầu nhật ký cho trang web cụ thể Lưu đóng tệp bạn hoàn thành Bây bạn tạo tệp máy chủ ảo, bạn kích hoạt chúng để Apache biết để phục vụ chúng cho khách truy cập Để làm điều này, tạo liên kết tượng trưng cho máy chủ ảo sites-enabledthư mục: sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesenabled/example.com.conf Máy chủ ảo bạn cấu hình sẵn sàng phục vụ nội dung Trước khởi động lại dịch vụ Apache, đảm bảo SELinux có sách phù hợp cho máy chủ ảo bạn Bước - Điều chỉnh quyền Selinux cho máy chủ ảo (Được khuyến nghị) SELinux cấu hình để hoạt động với cấu hình Apache mặc định Vì bạn thiết lập thư mục nhật ký tùy chỉnh tệp cấu hình máy chủ ảo, bạn gặp lỗi bạn cố khởi động dịch vụ Apache Để giải vấn đề này, bạn cần cập nhật sách SELinux phép Apache ghi vào tệp cần thiết SELinux mang lại bảo mật nâng cao cho môi trường CentOS bạn, khơng nên tắt hồn tồn mơđun hạt nhân Có nhiều cách khác để đặt sách dựa nhu cầu mơi trường bạn, SELinux cho phép bạn tùy chỉnh mức độ bảo mật Bước bao gồm hai phương pháp điều chỉnh sách Apache: phổ biến thư mục cụ thể Điều chỉnh sách thư mục an tồn hơn, cách tiếp cận đề xuất Điều chỉnh sách Apache tồn cầu Việc thiết lập sách Apache cách phổ biến yêu cầu SELinux xử lý tất quy trình Apache cách sử dụng httpd_unifiedboolean Mặc dù cách tiếp cận thuận tiện hơn, khơng cung cấp cho bạn mức độ kiểm soát giống cách tiếp cận tập trung vào sách tệp thư mục Chạy lệnh sau để đặt sách Apache phổ quát: sudo setsebool -P httpd_unified Các setseboollệnh thay đổi SELinux giá trị boolean Các -Plá cờ cập nhật giá trị thời gian khởi động, làm cho thay đổi kéo dài qua khởi động lại httpd_unifiedlà boolean nói với SELinux coi tất quy trình Apache loại, bạn kích hoạt với giá trị Điều chỉnh sách Apache thư mục Cài đặt riêng quyền TỰ TIN cho thư mục cung cấp cho bạn quyền kiểm sốt nhiều sách Apache bạn, u cầu bảo trì nhiều Vì tùy chọn khơng phải sách cài đặt chung, bạn cần đặt thủ công loại ngữ cảnh cho thư mục nhật ký định cấu hình máy chủ ảo bạn./var/www/example.com/log Đầu tiên, kiểm tra loại ngữ cảnh mà SELinux cho thư mục:/var/www/example.com/log sudo ls -dZ /var/www/example.com/log/ Lệnh liệt kê in bối cảnh SELinux thư mục Bạn thấy đầu tương tự sau: Output drwxr-xr-x root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/ Bối cảnh httpd_sys_content_t, thơng báo cho SELinux quy trình Apache đọc tệp tạo thư mục Trong hướng dẫn này, bạn thay đổi loại ngữ cảnh thư mục thành Loại cho phép Apache tạo nối vào tệp nhật ký ứng dụng web:/var/www/example.com/loghttpd_log_t sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?" Tiếp theo, sử dụng restoreconlệnh để áp dụng thay đổi trì chúng lần khởi động lại: sudo restorecon -R -v /var/www/example.com/log Các -Rlá cờ chạy lệnh cách đệ quy, có nghĩa cập nhật tập tin có để sử dụng bối cảnh Các -vlá cờ in bối cảnh thay đổi lệnh thực Bạn thấy đầu sau xác nhận thay đổi: Output restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0 Bạn liệt kê bối cảnh lần để xem thay đổi: sudo ls -dZ /var/www/example.com/log/ Đầu phản ánh loại bối cảnh cập nhật: Output drwxr-xr-x root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log Bây thư mục sử dụng loại, bạn sẵn sàng để kiểm tra cấu hình máy chủ ảo mình./var/www/example.com/loghttpd_log_t Bước - Kiểm tra máy chủ ảo (Được khuyến nghị) Khi bối cảnh SELinux cập nhật với hai phương thức, Apache ghi vào thư mục Bây bạn khởi động lại thành cơng dịch vụ Apache:/var/www/example.com/log sudo systemctl restart httpd Liệt kê nội dung thư mục để xem Apache tạo tệp nhật ký:/var/www/example.com/log ls -lZ /var/www/example.com/log Bạn thấy Apache tạo error.logvà requests.logcác tệp định cấu hình máy chủ ảo: Output -rw-r r root root Feb 26 22:54 error.log -rw-r r root root Feb 26 22:54 requests.log Bây bạn thiết lập máy chủ ảo cập nhật quyền TỰ TIN, Apache phục vụ tên miền bạn Bạn kiểm tra điều cách điều hướng đến , nơi bạn thấy này:http://example.com Điều xác nhận máy chủ ảo bạn cấu hình phục vụ nội dung thành cơng Lặp lại bước để tạo máy chủ ảo với quyền TỰ TIN cho tên miền bổ sung Phần kết luận Trong hướng dẫn này, bạn cài đặt quản lý máy chủ web Apache Bây bạn cài đặt máy chủ web, bạn có nhiều tùy chọn cho loại nội dung bạn phục vụ cơng nghệ bạn sử dụng để tạo trải nghiệm phong phú Nếu bạn muốn xây dựng ngăn xếp ứng dụng hoàn chỉnh hơn, bạn xem viết cách định cấu hình ngăn xếp LAMP CentOS ... chạy: Output Redirecting to /bin/systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)... /etc/httpd/sites-available/example.com.conf /etc/httpd/sitesenabled/example.com.conf sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sitesenabled/example2.com.conf Restart Apache để lưu... /etc/apache2/sites-available /00 0-default.conf /etc/apache2/sitesavailable/vidu2.com.conf Mở chỉnh sửa tập tin c? ??u hình/etc/apache2/sites-available/vidu1.com.conf $ sudo nano /etc/apache2/sites-available/vidu1.com.conf

Ngày đăng: 23/12/2021, 10:27

Mục lục

    CHƯƠNG 1: TỔNG QUAN VIRTUAL HOST

    1. Giới thiệu mô hình virtual host:

    2. Khái niệm Virtual Host:

    3. Chức năng: giúp ta duy trì nhiều hơn một web server trên một máy tính

    5. Các port sử dụng: 80, 8080, …(web)

    1. Cài đặt và cấu hình DNS:

    6. Cài đặt phần mềm Apache:

    8. Cấu hình virtual host:

    9. Tạo các web thử nghiệm:

    10. Kiểm tra thử nghiệm:

Tài liệu cùng người dùng

Tài liệu liên quan