Cài đặt và cấu hình Web Server trên LINUX

-= Cài đặt và cấu hình Web Server =-
1. Cài đặt Web Server
Với Linux (sử dụng phiên bản CentOS), chúng ta có thể chọn gói mã nguồn như httpd-2.2.3.tar.gz. Đây là gói miễn phí, chúng ta hoàn toàn có thể download được trên mạng:
• Nếu sử dụng gói .gz thì dùng lệnh: tar xvzf httpd-***.tar.gz
• Vào thư mục vừa giải mã, sau đó sử dụng các lệnh ./configure | make | make install để cài đặt.
• Còn nếu cài đặt từ những gói rpm thì gõ lệnh: rpm -ivh httpd-***.rpm
• Bây giờ, chúng ta có thể chạy Web Server nếu chúng ta muốn. Tuy nhiên, vẫn có khi gặp trường hợp không thể khởi động được như: lỗi vì đã có phần mềm nào đó chạy trên port mà Web Server ta sẽ chạy (80). Điều này có thể khắc phục được một cách dễ dàng, bằng cách tắt chương trình chạy trên port đó đi. Và bây iờ khởi động lại là có thể chạy được.
• Để start – stop – restart webserver: /etc/init.d/httpd start|stop|restart hoặc dùng lệnh:
#chkconfig httpd on
#service httpd start|stop|restart
• Tuy nhiên, để có thể hiểu cũng như vận hành theo đúng ý muốn của chúng ta thì cần phải hiểu và cũng như phải tận tay cấu hình nó.

2. Cấu hình Web Server:
Các tập tin và thư mục cấu của Apache:
• /etc/httpd/conf: thư mục lưu giữ các tập tin cấu hình như httpd.conf.
• /etc/httpd/modules: lưu giữ các module của Web Server.
• /etc/httpd/logs: lưu các tập tin log của Apache.
• /var/www/html: lưu các trang web.
• /var/www/cgi-bin: lưu các script sử dụng cho các trang web
Tập tin cấu hình Apache được tạo thành từ nhiều chỉ dẫn (directive) khác nhau.Mỗi dòng hoặc mỗi một directive và phục vụ cho một cấu hình riêng biệt. Có những directive có ảnh hưởng với nhau. Những dòng bắt đầu bằng dấu # là những dòng chú thích. Sau đây là những directive quan trọng khi cấu hình Web Server.

ServerName:
Cú pháp: ServerName port
Trong đó, hostname là tên máy tính của Server. Nó được dùng trong việc tạo ra những URL chuyển tiếp (direction URL). Nếu không chỉ ra, server sẽ cố gắng suyluận từ địa chỉ IP của nó. Tuy nhiên, điều này có thể không tin cậy hoặc không trả ra tên máy tính đúng.
Ví dụ: ServerName www.linuxcentos.org

ServerAdmin: địa chỉ email của người quản trị hệ thống
Cú pháp: ServerAdmin <địa chỉ email>
Ví dụ: ServerAdmin webadmin@linuxcentos.org

ServerType: quy định cách nạp chương trình. Có 2 cách:
• inetd: chạy từ các init level.
• standalone: chạy từ hệ thống.
Cú pháp: ServerType
Ví dụ: ServerType standalone

DocumentRoot: cấu hình thư mục góc, lưu trữ nội dung của Website. Web Server sẽ lấy những tập tin trong thư mục này phục vụ cho yêu cầu của client.
Cú pháp: DocumentRoot <đường dẫn thư mục>
Ví dụ: DocumentRoot /usr/web

ServerRoot: Vị trí cài đặt chương trình Apache.
Cú pháp: ServerRoot
Ví dụ: ServerRoot /user/local/apache

ErrorLog: chỉ ra tập tin để server ghi vào bất kỳ những lỗi nào mà nó gặp phải.
Cú pháp: ErrorLog
Ví dụ: ErrorLog logs/error_log

DirectoryIndex: các tập tin mặc định được truy vấn khi truy cập trang Web.
Cú pháp: DirectoryIndex
Ví dụ: DirectoryIndex index.html

MaxClients: Quy định số yêu cầu kết nối từ các client đến server.
Cú pháp: MaxClients
Ví dụ MaxClients 256

Listen: quy định địa chỉ IP hoặc cổng mà Apache nhận kết nối từ Client.
Cú pháp: Listen
Ví dụ: Listen 80

BindAddress: quy định địa chỉ card mạng để chạy Apache trên Server.
Cú pháp: BindAddress
Sử dụng dấu “*” để có thể sử dụng tất cả các địa chỉ trên máy.
Ví dụ: BindAddress 192.168.7.8

TimeOut: quy định thời gian sống của một kết nối (được tính bằng giây).
Cú pháp: TimeOut
Ví dụ: TimeOut 300

KeepAlive: cho phép hoặc không cho phép client gửi được nhiều yêu cầu dựa trên một kết nối đến với Web Server.
Cú pháp: KeepAlive
Ví dụ: KeepAlive On

MaxKeepAliveRequests: số Request tối đa trên một kết nối (nếu cho phép nhiều Request trên một kết nối).
Cú pháp: MaxKeepAliveRequests
Ví dụ: MaxKeepAliveRequests 100

KeepAliveTimeout: thời gian chờ một Request kế tiếp từ cùng một client trên cùng một kết nối (được tính bằng giây).
Cú pháp: KeepAliveTimeout
Ví dụ: KeepAliveTimeout 15

Alias: ánh xạ đường dẫn cục bộ (không nằm trong DocumentRoot) thành tên đường dẫn địa chỉ URL.
Cú pháp: Alias <đường dẫn http><đường dẫn cục bộ>
Ví dụ: Alias /doc /usr/share/doc
Khi truy cập http://www.linuxcentos.org/doc, nó sẽ vào /usr/share/doc.

Để giới hạn việc truy cập của người dùng ta có thể kết hợp với Directory directive.
Ví dụ: Alias /doc /usr/share/doc
AuthType Basic #kiểu authentication sẽ sử dụng là Basic
AuthName intranet #đặt tên cho sự chứng thực là intranet
AuthUserFile /etc/httpd/passwd #vị trí của tập tin password
Require user hongthai minhtri #user cho phép truy cập tài nguyên
Allow from internal.linuxcentos.org #cho phép truy cập từ đchỉ này

UserDir: cho phép người dùng tạo Home page của user trên Web Server.
Cú pháp:

UserDir Disables ## để thực thi cơ chế enable UserDir
UserDir www ## Khai báo thư mục chứa Website của user


Trong thư mục Home Directory của người dùng tạo thư mục www.
Ví dụ:
/home/adminloc Khi đó, cú pháp truy cập từ Web Browser có dạng:
http://www.linuxcentos.org/~ tức trong trường hợp này là http://www.linuxcentos.org/~adminloc. Khi người dùng có gắng truy cập đến thư mục của mình, có thể gặp một message lỗi “Forbidden”. Điều này có thể là quyền truy cập đến home directory của người dùng bị giới hạn. Như vậy để khắc phục lỗi trên, chúng ta cần giới hạn lại quyền truy cập home directory của người dùng với những câu lệnh như sau:
chown adminloc /home/adminloc/home/adminloc/www
chmod 750 /home/adminloc/home/adminloc/www

VirtualHost: là tính năng của Apache, giúp ta duy trì nhiều hơn một web server trên một máy tính. Nhiều tên cùng chia sẻ một địa chỉ IP gọi là named-based virtual hosting và sử dụng những địa chỉ IP khác nhau cho từng domain gọi là IP-based
virtual hosting.
IP-based Virtual Host: Virtual Host dựa trên IP yêu cầu những server phải có một địa chỉ IP khác nhau cho mỗi virtual host dựa trên IP. Như vậy, một máy tính phải có nhiều interface hay sử dụng cơ chế virtual interface mà những hệ điều hành sau hỗi trợ. Nếu máy của chúng ta có một địa chỉ IP, 192.168.7.8, chúng ta có thể cấu hình một địa chỉ IP khác trên cùng một card mạng như sau:

ifconfig eth0:1 192.168.7.9 netmask 255.255.255.0 up

Sau đó, chúng ta mô tả thông tin cấu hình trong file httpd.conf
; VirtualHost default
...
DocumentRoot/tmp
ServerName www.domain



;VirtualHost cho site 1

DocumentRoot/home/www/site1
ServerName www1.domain


;VirtualHost cho site 2

DocumentRoot/home/www/site2
ServerName www2.domain


Name-based Virtual Host: IP-based Virtual Hosts dựa vào địa chỉ IP để quyết định Virtual Host nào đúng để truy cập. Vì thế, chúng ta cần phải có địa chỉ khác nhau cho mỗi Virtual Host. Với Named-based Virtual Host, server dựa vào HTTP header của client để biết được hostname. Sử dụng kỹ thuật này, một địa chỉ IP có thể có nhiều tên máy tính khác nhau. Named-based Virtual Host rất đơn giản, chúng ta chỉ cần cấu hình DNS sao cho nó phân giải mỗi tên máy đúng với một địa chỉ IP và sau đó cấu hình Apache để tổ chức những web server cho những miền khác nhau.

Share this

Related Posts

Previous
Next Post »