SlideShare a Scribd company logo
APACHE HTTP SERVER
What is a Web Server???



                    Web server là một máy
                    chú đảm nhận chức năng
                    thu nhận và xử lý các bản
                    tin HTTP Request, sau đó
                    phản hồi lại cho client các
                    thông tin tương ứng.
Apache Web Server at a
Glance
Apache Web Server at a
Glance
    Bắt đầu từ năm 1996
    Là một phần mềm mã nguồn mở
    Website chính thức: Apache.org
    Được sử dụng rộng rãi nhất trong các WWW Server
APACHE HTTP SERVER ARCHITECTURE



                            Modular
                             Design
                                Apache
                                 Core
                                Other
                                 Modules
Apache Core

 Cung cấp các tài nguyên phù hợp cho từng request mà Web Server
 nhận được.
        http_protocol.c
        http_main.c
        http_request.c
        http_core.c
        alloc.c
        http_config.c
Apache Core

    http_protocol.c
      Chứa các thủ tục làm nhiệm vụ giao tiếp trực tiếp với các client
 thong qua socket bằng giao thức HTTP. Tất cả các công việc trao đổi
 dữ liệu với client đều do thành phần này đảm trách.


    http_main.c:
     Thành phần làm nhiệm vụ khởi động server và tạo vòng lặp
 chính để đợi và chấp nhận các kết nối. Đồng thời cũng làm nhiệm vụ
 quản lý các bộ thời gian timeout.
Apache Core

    http_request.c:
      Thành phần này làm nhiệm vụ quản lý các tiến trình xử lý bản
 tin request, đảm bảo chuyển các bản tin điều khiển tới các module
 phù hợp theo đúng thứ tự. Ngoài ra, nó còn đảm nhận vai trò quản
 lý các lỗi xảy ra trên server.


    http_core.c:
     Thành phần này sẽ triển khai các chức năng cơ bản nhất của
 Apache.
Apache Core

    alloc.c:
     Thành phần kiểm soát việc phân chia tài nguyên và lưu trữ các
 thông tin về sự phân chia đó.


    http_config.c:
       Đảm nhận vai trò xử lý file cấu hình và hỗ trợ cho các virtual
 host. Một trong những chức năng quan trọng của thành phần này là
 liệt kê những module được sử dụng trong Apache.
Apache Core
Request Processing

 1.   Phân giải địa chỉ
 2.   Kiểm tra truy nhập và cấp quyền truy cập đến những tài nguyên
      cần thiết
 3.   Xác định MIME (Multipurpose Internet Mail Extensions) của đối
      tượng bị truy vấn. Tức là thông tin về kiểu định dạng của tài
      nguyên trên server được gọi tên trong gói HTTP Request
 4.   Chỉnh sửa lại một số thông tin, ví dụ thay đổi alias thành một
      đường dẫn thực (định nghĩa alias sẽ được trình bày trong phần
      về mod_alias dưới đây)
 5.   Gửi trả dữ liệu lại cho client.
 6.   Ghi lại log.
Communicating between
Modules
 Các modules không liên lạc trực tiếp với nhau, mọi giao tiếp đều
 phải thông qua core. Mô hình sau đây trình bày mô hình trao đổi
 thông tin của các modules:
Handler

    Handler là một hành động được Apache định nghĩa riêng cho
     từng loại file nhất định. Mặc định sau khi cài đăt Apache thì tùy
     theo loại file mà sẽ được xử lý theo các cách khác nhau.


    Handler có thể được cấu hình dựa trên phần mở rộng của file
     (extension) hoặc theo từng thư mục khác nhau.
Handler

 Mặc định, có sẵn 7 handler trong hệ thống như sau:


    Send-as-is: sử dụng trong module mod_asis, dùng để gửi
     trả gói tin cho client mà không sử dụng đầy đủ các thông số
     trong HTTP header.
    Cgi-script: coi file là một cgi-script.
    Imap-file: sử dụng chung với mod_imagemap
    Server-info: lấy thông tin về cấu hình của server
    Server-status: lấy thông tin về trạng thái của server.
    Type_map: sử dụng cùng với module mod_negotiation.
Modules

 Các module có thể đã được cài đặt sẵn trong quá trình build
 Apache, hoặc cũng có thể cài đặt thêm. Mặc định có sẵn các module
 sau:


    Chuyển đổi giữa URI thành filename trên server:
          Mod_userdir: chuyển thư mục home cho từng user.
          Mod_rewrite: điều chỉnh lại đường dẫn URL.
    Giai đoạn Xác thực / phân quyền:
           mod_auth, mod_auth_anon,mod_auth_db, mod_auth_dbm:
          các kiểu xác thực người dùng.
          Mod_access: kiểm soát truy nhập theo từng host.
Modules

    Xác định MIME của đối tượng được truy vấn:
           mod_mime: xác định loại file bằng cách dựa vào phần mở
          rộng.
          mod_mime_magic: xác định loại file bằng cách sử dụng
          “magic number”
    Chỉnh sửa đường dẫn:
          Mod_alias: thay thế alias bằng đường dẫn thực trên server.
           Mod_env: thay đổi các tham số hệ thống dựa trên thông
          tin trong file cấu hình.
          Mod_spelling: tự động sửa lỗi trong URL.
Modules

    Gửi trả lại dữ liệu cho client:
          Mod_actions: các script cho từng loại file sẽ được thực thi.
          Mod_asis: gửi file nguyên dạng
          Mod_autoindex:
          Mod_cgi: gọi script CGI và trả lại kết quả.
          Mod_include:
          Mod_dir: xử lý về thư mục
          Mod_imap: xử lý image-map files.
    Ghi log:
          Mod_log_*: các module log khác nhau.
Apache Configuration File

 File cấu hình chính của Apache mặc định nằm ở đường dẫn
 /etc/httpd/conf/httpd.conf
Apache Configuration File

 Gồm các thành phần chính:


 1. Global Environment:
   Tham số môi trường toàn cục: Các thông số này được cấu hình để điều khiển hoạt
   động của toàn bộ Apache Server.

 2. Các directive định nghĩa các thông số của ‘main’ hay
 ‘default’ server.
      Khi một request đến Apache Server mà không được Virtual
 Host nào xử lý     thì các thông số này sẽ quyết định hành động
 của Apache Server. Các tham số        này cũng đồng thời xác lập
 các giá trị mặc định cho tất cả các Virtual Host.
 3. Các tham số riêng cho từng virtual host.
Config/ Global
Environment
 1. ServerToken & ServerSignature
     ServerSignature Off
     ServerTokens Prod
     giảm nguy hơ bị lộ thông tin về phiên bản Apache
 đang chạyTrên server
 2. ServerRoot
     Cấu hình thư mục lưu trữ chính của Apache
Config/ Global
Environment
 3. PidFile
     Thông số này lưu trữ đường dẫn đến file httpd.pid, là file
 lưu giữ process ID của Apache mỗi khi khởi chạy.
 4. Timeout
     Thời gian time out cho hệ thống, giá trị mặc định
 5. KeepAlive
     Cho phép hay không kiểu kết nối KeepAlive được hoạt
 động. KeepAlive là một hình thức có thể giúp tăng tốc độ tải
 trang khi không mở kết nối cho từng gói request một. Tuy
 nhiên, khi bị tấn công DDoS thì nên tắt chức năng này để
 giảm thiểu ảnh hưởng tới hệ thống.
     KeepAliveTimeout
Config/ Global
Environment
 6. Listen
    Thông số này dùng để cấu hình địa chỉ IP và port mà
 Apache sẽ nhận các gói HTTP Request
 7. LoadModule
    Dùng để chọn những module nào sẽ được khởi động
 cùng với hệ thống Apache.
 8. Include
     Cấu hình thư mục chứa file config
Config/ Main Server
Configuration
 1. ServerAdmin
 Cấu hình địa chỉ email của người quản trị, thông tin
 này sẽ được hiển thị trên một số trang web nhất định,
 ví dụ như trang báo lỗi.
 2. UseCanonicalName
 Thông thường khi sử dụng Name-based Virtual Host
 thì nên set thông số này là Off
 3. DocumentRoot
 Thư mục lưu trữ các đường dẫn chứa mã nguồn của
 website. Các request từ client thông thường sẽ chỉ
 truy xuất được thông tin từ thư mục này.
Config/ Main Server
Configuration
 4. DirectoryIndex
 Chỉ định file mặc định được trả về cho client khi có
 request tới một thư mục nào đó. Thông thường các
 file như index.html, index.php sẽ được sử dụng.
 DirectoryIndex index.html index.html.var
 5. AccessFileName
 Chỉ định file bổ sung các cấu hình riêng cho từng
 thư mục nhất định. Thông thường sẽ là file
 “.htaccess” như sau:
Config/ Main Server
Configuration
 6. TypesConfig
 Chỉ đường dẫn đến file mime.types. File này sẽ giúp
 cho Apache tra cứu phần mở rộng của file để xác
 định MIME type trong HTTP Header.
 DefaultType text/plain
 Mặc định MIME type cho các file apache không xác
 định được sẽ là kiểu file text.
 7. HostnameLookups
 Cấu hình ghi log tên hostname của client hay chỉ
 địa chỉ IP của client.
Config/ Main Server
Configuration
 8. ErrorLog
 Cấu hình đường dẫn lưu trữ Error của hệ thống
 9. LogLevel
 Mức độ ghi log. Giống như syslog, log trong Apache cũng
 được ghi chia thành 7 mức độ khác nhau, từ cao xuống thấp
 là emergency, alert, critical, error, warning, notification,
 informational, debug.
 10. Log
Apache Virtual Host

     Bằng cách sử dụng Virtual Host trong Apache HTTP
 Server, người quản trị có thể chạy đồng thời nhiều website
 trên cùng một server. Với kỹ thuật này, tài nguyên của server
 được tận dụng hiệu quả tối đa.
     Có hai loại cấu hình Apache sẽ được trình bày, bao gồm:
      1.   IP-based Virtual Host
      2.   Name-based Virtual Host
IP Based Virtual Host


                  Apache Server
        1.1.1.1                   1.1.1.2

A.com                                       B.com   Trỏ từng website vào
                                                    các địa chỉ khác nhau
                                                    => trên server cần có
                                                    nhiều hơn 1 địa chỉ IP
Name-based Virtual Host

                                  Thông tin hostname được lưu
                                  trong phần Header của bản tin
                  Apache Server
                                  HTTP Request. Khi nhận các bản
        1.1.1.1                   tin Request này thì Apache sẽ
A.com
                                  chuyển đển các virtual host
B.com
                                  tương ứng để xử lý
                                  => Chi cần sử dụng 1 IP, trỏ
                                  nhiều domain name vào cùng IP
                                  đó
Virtual Host Configuration

 Cấu hình virtual host được thực hiện trong file httpd.conf
 hoặc file httpd-vhosts.conf


 Với cấu hình Virtual Host, cần cầu hình các thành phần sau
 đây:
    Đường dẫn đến thư mục lưu trữ web.
    Server Name.
    Đường dẫn đến file log.
vHost Configuration
Example

<VirtualHost 10.1.2.3:80>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>
Multiprocessing

 Có 2 khái niệm về khả năng xử lý của Web Server :


    Single-threaded Web Server: Không có khả năng xử lý
     đồng thời nhiều request cùng một lúc
    Multi-thread Web Server: Có khả năng xử lý nhiều
     request cùng lúc, gồm 2 kỹ thuật chính:
        Miltiprocess: Tạo Process mới cho từng Request.
        Multithread: Tạo Thread mới cho từng Request.
Process vs Thread



               sử dụng kỹ thuật đa nhiệm dựa vào thread sẽ tiết
              kiệm được tài nguyên phần cứng và tăng tốc độ xử lý
              giữa các tác vụ khác nhau. Kiểu xử lý đa nhiệm bằng
              cách tạo process sẽ ấn định bộ nhớ cho từng request
              được nhận, do vậy khả năng xử lý của kỹ thuật này có
              phần hạn chế hơn.
Multiprocessing in Apache

     Trong Apache cũng có các module có chức năng hỗ trợ
 khả năng xử lý đa nhiệm cho server. Các module này được gọi
 là Multiprocessing Modules (MPMs).


     Trong Apache quan tâm chủ yếu đến 2 MPMs:
        prefork
        worker
Prefork vs. Worker

                   Prefork                                          Worker
               Multiprocessing                                   Multithreading
         Tạo ra các process riêng biệt            Tạo ra các thread riêng biệt => phù hợp hơn
                                                        đối với các hệ thống xử lý đa lõi

 Lỗi trên 1 process không thể gây ảnh hưởng       Khi có lỗi xảy ra trên 1 thread thì các thread
             lên các process khác                      cùng process có thể bị ảnh hưởng



Việc lựa chọn kỹ thuật xử lý còn tùy thuộc vào nhiều yếu tố khác của server, ví dụ PHP không
hoạt động ổn định với hình thức chia sẻ bộ nhớ chung của Worker nên thường phải sử dụng
Prefork
APACHE
MODULES

          Nằm bên trong các Modules cũng
          như file cấu hình Apache nhằm chỉ thị
          các hoạt động của Apache.
APACHE
MODULES
          ► Description: tổng quát chức năng
          ► Status: (MPM, Base, Extension,
            Experimental, External).
          ► Module Indentifier
          ► Source file
MODULES – MOD_CACHE
Cache nội dung trang web, làm tăng tốc độ truy cập website – cần sử dụng kết hợp module này
với mod_disk_cache hoặc mod_mem_cache.

Config:
<IfModule mod_cache.c>
          LoadModule mem_cache_module modules/mod_mem_cache.so
          <IfModule mod_mem_cache.c>
               CacheEnable mem /
               MCacheSize 4096
               MCacheMaxObjectCount 100
               MCacheMinObjectSize 1
               MCacheMaxObjectSize 2048
          </IfModule>
</IfModule>
MODULES –
MOD_GZIP/DEFLATE
        Nén dữ liệu trước khi gửi tới client

        Config:
        <Location />
             # Insert filter
             SetOutputFilter DEFLATE
             # Netscape 4.x has some problems...
             BrowserMatch ^Mozilla/4 gzip-only-text/html
             # Netscape 4.06-4.08 have some more problems
             BrowserMatch ^Mozilla/4.0[678] no-gzip
             # MSIE masquerades as Netscape, but it is fine
             BrowserMatch bMSIE !no-gzip !gzip-only-text/html
             # Don’t compress image
             SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-v
             # Make sure proxies don't deliver the wrong content
             Header append Vary User-Agent env=!dont-vary
        </Location>
MODULES – MOD_SSL
         Mã hóa dữ liệu sử dụng giao thức Secure Sockets
         Layer ( SSL ) và bảo mật giao thức ở tầng giao vận (
         TLS )

         Config:
         <VirtualHost *:443>
           ServerAdmin usera.com
           DocumentRoot "/var/www/html/tien.td/"
           SSLEngine on
           ServerName usera.com
           SSLCertificateFile
         /var/www/html/tien.td/ssl/server.crt
           SSLCertificateKeyFile
         /var/www/html/tien.td/ssl/server.key
         </VirtualHost>
Nội dung

    Giới thiệu
    Tóm tắt và cấu hình các module
    Cách hoạt động và so sánh
    Lab
Giới thiệu

    php_module          : được đánh giá nhanh nhất, bảo mật
     kém. (DSO)
    cgi_module          : giúp php process tách biệt với process
     của apache, hỗ trợ                           chạy user riêng
     biệt (suexec on). Chậm hơn mod_php 36 lần.
    cgid_module         : tương tự như mod_cgi nhưng được
     enable nếu chọn multi                             threaded
     MPM (worker) khi compile.
    suphp_module: nâng cao độ bảo mật, chậm hơn so với
     php_module và cgi                            (suexec off),
     nhanh hơn cgi (suexec on). Chậm hơn mod_php
            25 lần.
    fcgid_module        : nhanh hơn mod_suphp, và độ bảo mật
     cao.
Mod_php

    PHP interpreter được load vào apache process
    PHP khởi động cùng với apache, load nhanh
    Cấu hình:
        LoadModule php5_module modules/libphp5.so
        AddHandler php5-script .php
Mod_cgi

    Với mỗi request, web server spawns 1 process mới để run CGI program.
    CGI tách biệt với apache, giao tiếp qua pipe I/O
    Khởi tạo Process để xử lý 1 request, terminate sau đó
    Cấu hình:
         ScriptAlias /local-bin /usr/local/bin
         AddHandler application/x-httpd-php5 php
         Action application/x-httpd-php5 /local-bin/php-cgi
         <Directory "/usr/local/bin">
         Order allow,deny
         Allow from all
         </Directory>
Mod_suphp


    Hoạt động như cgi nhưng có cơ chế riêng để thực thi quyền user
    Cấu hình:
         httpd.conf
                            webserver_user=apache
                            x-httpd-php=php:/usr/bin/php hoặc x-httpd-php="php:/usr/bin/php-cgi"
                            x-suphp-cgi=execute:!self hoặc x-suphp-cgi="execute:!self"
                            AddHandler x-httpd-php .php .php3 .php4 .php5
                        suPHP_Engine on
                            suPHP_AddHandler x-httpd-php
         VirtualHost:
                            suPHP_UserGroup username groupname
      
Mod_fcgid

    Hoạt động như cgi tuy nhiên có 2 điểm khác biệt
        Fastcgi process vẫn tồn tại sau khi xử lý request (mặc
         định 500)
        Apache và fastcgi giao tiếp qua TCP connection
    Tiêu thụ nhiều ram do các process chiếm giữ, ít
     tốn cpu do không phải thực hiện khởi tạo, chấm
     dứt process.
Vấn đề bảo mật
SuEXEC
(Switch User for EXEC)
    Cho phép CGI scripts chạy theo từng user
    Suexec được cấu hình cho mỗi virtual host
    Cấu hình:
         SuexecUserGroup nobody nogroup
So sánh

More Related Content

What's hot

Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use caseTrung Chinh Hà
 
Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1
vtt167
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.com
mai_non
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuLê Minh
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
The Nguyen Manh
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Thùy Linh
 
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select union
Nguyễn Danh Thanh
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
Nguyen Thi Lan Phuong
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
Thanh Hoa
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
Võ Phúc
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tin
Trung Quan
 
Bài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mụcBài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mục
Dũng Nguyễn Văn
 
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đĐề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAYĐề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Đề tài: Quản lí tiền điện
Đề tài: Quản lí tiền điệnĐề tài: Quản lí tiền điện
Đề tài: Quản lí tiền điện
Viết thuê trọn gói ZALO 0934573149
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
ThiênĐàng CôngDân
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
jackjohn45
 
lập trình di động
lập trình di độnglập trình di động
lập trình di độngtruong le hung
 

What's hot (20)

Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
 
Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.com
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệu
 
Báo cáo đồ án - Thiết kế web tại Thanh Hóa
Báo cáo đồ án - Thiết kế web tại Thanh HóaBáo cáo đồ án - Thiết kế web tại Thanh Hóa
Báo cáo đồ án - Thiết kế web tại Thanh Hóa
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select union
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tin
 
Bài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mụcBài Giảng IC3 GS4: Tập tin và thư mục
Bài Giảng IC3 GS4: Tập tin và thư mục
 
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đĐề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
Đề tài: Xây dựng Website quản lý điểm trường Phổ thông, 9đ
 
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAYĐề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
 
Đề tài: Quản lí tiền điện
Đề tài: Quản lí tiền điệnĐề tài: Quản lí tiền điện
Đề tài: Quản lí tiền điện
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
 
lập trình di động
lập trình di độnglập trình di động
lập trình di động
 

Viewers also liked

Apache thrift
Apache thriftApache thrift
Apache thrift
ducdv
 
Apache Web Server Setup 2
Apache Web Server Setup 2Apache Web Server Setup 2
Apache Web Server Setup 2
Information Technology
 
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
Phuong Truong
 
Backup+restore+linux
Backup+restore+linuxBackup+restore+linux
Backup+restore+linux
phanleson
 
Cloudera hadoop installation
Cloudera hadoop installationCloudera hadoop installation
Cloudera hadoop installation
Sumitra Pundlik
 
テレビ東京 meets LINE ビジネスコネクト
テレビ東京 meets LINE ビジネスコネクトテレビ東京 meets LINE ビジネスコネクト
テレビ東京 meets LINE ビジネスコネクトLINE Corporation
 
LINE Platform Development Chronicle
LINE Platform Development ChronicleLINE Platform Development Chronicle
LINE Platform Development Chronicle
LINE Corporation
 
LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01
LINE Corporation
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 

Viewers also liked (9)

Apache thrift
Apache thriftApache thrift
Apache thrift
 
Apache Web Server Setup 2
Apache Web Server Setup 2Apache Web Server Setup 2
Apache Web Server Setup 2
 
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
ĐỒ ÁN LÝ THUYẾT _ NHÓM 12
 
Backup+restore+linux
Backup+restore+linuxBackup+restore+linux
Backup+restore+linux
 
Cloudera hadoop installation
Cloudera hadoop installationCloudera hadoop installation
Cloudera hadoop installation
 
テレビ東京 meets LINE ビジネスコネクト
テレビ東京 meets LINE ビジネスコネクトテレビ東京 meets LINE ビジネスコネクト
テレビ東京 meets LINE ビジネスコネクト
 
LINE Platform Development Chronicle
LINE Platform Development ChronicleLINE Platform Development Chronicle
LINE Platform Development Chronicle
 
LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01LINE 2016 エンジニアインターン 01
LINE 2016 エンジニアインターン 01
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
 

Similar to Apache http server

19 web server
19  web server19  web server
19 web serverCơn Gió
 
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVERGIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
PMC WEB
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.com
phanleson
 
B tl internet
B tl internetB tl internet
B tl internettoan
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSL
Lam To
 
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAYLuận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Dịch Vụ Viết Thuê Khóa Luận Zalo/Telegram 0917193864
 
Slide 06
Slide 06Slide 06
Slide 06
tuanduongcntt
 
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị websiteBài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
MasterCode.vn
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
MasterCode.vn
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
tuanduongcntt
 
Slide Báo Cáo Cuối Kỳ
Slide Báo Cáo Cuối KỳSlide Báo Cáo Cuối Kỳ
Slide Báo Cáo Cuối KỳLy ND
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodau
Hoa Dại
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Serviceask bills
 
Bai 4 lap trình phia client
Bai 4  lap trình phia clientBai 4  lap trình phia client
Bai 4 lap trình phia clientLee Nam Nguyen
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
laonap166
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web động
THPT Ngô Quyền
 

Similar to Apache http server (20)

19 web server
19  web server19  web server
19 web server
 
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVERGIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
GIỚI THIỆU CÁC DẠNG MÁY CHỦ SERVER
 
Dos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.comDos web server it-slideshares.blogspot.com
Dos web server it-slideshares.blogspot.com
 
B tl internet
B tl internetB tl internet
B tl internet
 
03 udpt php
03 udpt   php03 udpt   php
03 udpt php
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSL
 
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAYLuận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
Luận văn: Kỹ thuật điều tra phân tích tấn công web, HAY
 
Slide 06
Slide 06Slide 06
Slide 06
 
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị websiteBài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Slide Báo Cáo Cuối Kỳ
Slide Báo Cáo Cuối KỳSlide Báo Cáo Cuối Kỳ
Slide Báo Cáo Cuối Kỳ
 
Php01 tong quan
Php01 tong quanPhp01 tong quan
Php01 tong quan
 
Ltw0 baimodau
Ltw0 baimodauLtw0 baimodau
Ltw0 baimodau
 
07 web course 1 php co ban
07 web course   1 php co ban07 web course   1 php co ban
07 web course 1 php co ban
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Service
 
Bai 4 lap trình phia client
Bai 4  lap trình phia clientBai 4  lap trình phia client
Bai 4 lap trình phia client
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web động
 

More from Hai Dinh Tuan

Equal Cost Multipath Routing in FOKUS OpenSDNCore
Equal Cost Multipath Routing in FOKUS OpenSDNCoreEqual Cost Multipath Routing in FOKUS OpenSDNCore
Equal Cost Multipath Routing in FOKUS OpenSDNCore
Hai Dinh Tuan
 
Traffic Engineering in Software-Defined Networks
Traffic Engineering in Software-Defined NetworksTraffic Engineering in Software-Defined Networks
Traffic Engineering in Software-Defined Networks
Hai Dinh Tuan
 
Inicio - Uncover Your Passion
Inicio - Uncover Your PassionInicio - Uncover Your Passion
Inicio - Uncover Your Passion
Hai Dinh Tuan
 
Ultra Wideband Technology
Ultra Wideband TechnologyUltra Wideband Technology
Ultra Wideband Technology
Hai Dinh Tuan
 
Effective presentation
Effective presentationEffective presentation
Effective presentation
Hai Dinh Tuan
 
Apache mod security 3.1
Apache mod security   3.1Apache mod security   3.1
Apache mod security 3.1
Hai Dinh Tuan
 
Apache http server 2
Apache http server   2Apache http server   2
Apache http server 2Hai Dinh Tuan
 
Resource space
Resource spaceResource space
Resource space
Hai Dinh Tuan
 
Ossec – host based intrusion detection system
Ossec – host based intrusion detection systemOssec – host based intrusion detection system
Ossec – host based intrusion detection systemHai Dinh Tuan
 

More from Hai Dinh Tuan (9)

Equal Cost Multipath Routing in FOKUS OpenSDNCore
Equal Cost Multipath Routing in FOKUS OpenSDNCoreEqual Cost Multipath Routing in FOKUS OpenSDNCore
Equal Cost Multipath Routing in FOKUS OpenSDNCore
 
Traffic Engineering in Software-Defined Networks
Traffic Engineering in Software-Defined NetworksTraffic Engineering in Software-Defined Networks
Traffic Engineering in Software-Defined Networks
 
Inicio - Uncover Your Passion
Inicio - Uncover Your PassionInicio - Uncover Your Passion
Inicio - Uncover Your Passion
 
Ultra Wideband Technology
Ultra Wideband TechnologyUltra Wideband Technology
Ultra Wideband Technology
 
Effective presentation
Effective presentationEffective presentation
Effective presentation
 
Apache mod security 3.1
Apache mod security   3.1Apache mod security   3.1
Apache mod security 3.1
 
Apache http server 2
Apache http server   2Apache http server   2
Apache http server 2
 
Resource space
Resource spaceResource space
Resource space
 
Ossec – host based intrusion detection system
Ossec – host based intrusion detection systemOssec – host based intrusion detection system
Ossec – host based intrusion detection system
 

Apache http server

  • 2. What is a Web Server??? Web server là một máy chú đảm nhận chức năng thu nhận và xử lý các bản tin HTTP Request, sau đó phản hồi lại cho client các thông tin tương ứng.
  • 3. Apache Web Server at a Glance
  • 4. Apache Web Server at a Glance  Bắt đầu từ năm 1996  Là một phần mềm mã nguồn mở  Website chính thức: Apache.org  Được sử dụng rộng rãi nhất trong các WWW Server
  • 5. APACHE HTTP SERVER ARCHITECTURE  Modular Design  Apache Core  Other Modules
  • 6. Apache Core Cung cấp các tài nguyên phù hợp cho từng request mà Web Server nhận được.  http_protocol.c  http_main.c  http_request.c  http_core.c  alloc.c  http_config.c
  • 7. Apache Core  http_protocol.c Chứa các thủ tục làm nhiệm vụ giao tiếp trực tiếp với các client thong qua socket bằng giao thức HTTP. Tất cả các công việc trao đổi dữ liệu với client đều do thành phần này đảm trách.  http_main.c: Thành phần làm nhiệm vụ khởi động server và tạo vòng lặp chính để đợi và chấp nhận các kết nối. Đồng thời cũng làm nhiệm vụ quản lý các bộ thời gian timeout.
  • 8. Apache Core  http_request.c: Thành phần này làm nhiệm vụ quản lý các tiến trình xử lý bản tin request, đảm bảo chuyển các bản tin điều khiển tới các module phù hợp theo đúng thứ tự. Ngoài ra, nó còn đảm nhận vai trò quản lý các lỗi xảy ra trên server.  http_core.c: Thành phần này sẽ triển khai các chức năng cơ bản nhất của Apache.
  • 9. Apache Core  alloc.c: Thành phần kiểm soát việc phân chia tài nguyên và lưu trữ các thông tin về sự phân chia đó.  http_config.c: Đảm nhận vai trò xử lý file cấu hình và hỗ trợ cho các virtual host. Một trong những chức năng quan trọng của thành phần này là liệt kê những module được sử dụng trong Apache.
  • 11. Request Processing 1. Phân giải địa chỉ 2. Kiểm tra truy nhập và cấp quyền truy cập đến những tài nguyên cần thiết 3. Xác định MIME (Multipurpose Internet Mail Extensions) của đối tượng bị truy vấn. Tức là thông tin về kiểu định dạng của tài nguyên trên server được gọi tên trong gói HTTP Request 4. Chỉnh sửa lại một số thông tin, ví dụ thay đổi alias thành một đường dẫn thực (định nghĩa alias sẽ được trình bày trong phần về mod_alias dưới đây) 5. Gửi trả dữ liệu lại cho client. 6. Ghi lại log.
  • 12. Communicating between Modules Các modules không liên lạc trực tiếp với nhau, mọi giao tiếp đều phải thông qua core. Mô hình sau đây trình bày mô hình trao đổi thông tin của các modules:
  • 13. Handler  Handler là một hành động được Apache định nghĩa riêng cho từng loại file nhất định. Mặc định sau khi cài đăt Apache thì tùy theo loại file mà sẽ được xử lý theo các cách khác nhau.  Handler có thể được cấu hình dựa trên phần mở rộng của file (extension) hoặc theo từng thư mục khác nhau.
  • 14. Handler Mặc định, có sẵn 7 handler trong hệ thống như sau:  Send-as-is: sử dụng trong module mod_asis, dùng để gửi trả gói tin cho client mà không sử dụng đầy đủ các thông số trong HTTP header.  Cgi-script: coi file là một cgi-script.  Imap-file: sử dụng chung với mod_imagemap  Server-info: lấy thông tin về cấu hình của server  Server-status: lấy thông tin về trạng thái của server.  Type_map: sử dụng cùng với module mod_negotiation.
  • 15. Modules Các module có thể đã được cài đặt sẵn trong quá trình build Apache, hoặc cũng có thể cài đặt thêm. Mặc định có sẵn các module sau:  Chuyển đổi giữa URI thành filename trên server:  Mod_userdir: chuyển thư mục home cho từng user.  Mod_rewrite: điều chỉnh lại đường dẫn URL.  Giai đoạn Xác thực / phân quyền:  mod_auth, mod_auth_anon,mod_auth_db, mod_auth_dbm: các kiểu xác thực người dùng.  Mod_access: kiểm soát truy nhập theo từng host.
  • 16. Modules  Xác định MIME của đối tượng được truy vấn:  mod_mime: xác định loại file bằng cách dựa vào phần mở rộng.  mod_mime_magic: xác định loại file bằng cách sử dụng “magic number”  Chỉnh sửa đường dẫn:  Mod_alias: thay thế alias bằng đường dẫn thực trên server.  Mod_env: thay đổi các tham số hệ thống dựa trên thông tin trong file cấu hình.  Mod_spelling: tự động sửa lỗi trong URL.
  • 17. Modules  Gửi trả lại dữ liệu cho client:  Mod_actions: các script cho từng loại file sẽ được thực thi.  Mod_asis: gửi file nguyên dạng  Mod_autoindex:  Mod_cgi: gọi script CGI và trả lại kết quả.  Mod_include:  Mod_dir: xử lý về thư mục  Mod_imap: xử lý image-map files.  Ghi log:  Mod_log_*: các module log khác nhau.
  • 18.
  • 19. Apache Configuration File File cấu hình chính của Apache mặc định nằm ở đường dẫn /etc/httpd/conf/httpd.conf
  • 20. Apache Configuration File Gồm các thành phần chính: 1. Global Environment: Tham số môi trường toàn cục: Các thông số này được cấu hình để điều khiển hoạt động của toàn bộ Apache Server. 2. Các directive định nghĩa các thông số của ‘main’ hay ‘default’ server. Khi một request đến Apache Server mà không được Virtual Host nào xử lý thì các thông số này sẽ quyết định hành động của Apache Server. Các tham số này cũng đồng thời xác lập các giá trị mặc định cho tất cả các Virtual Host. 3. Các tham số riêng cho từng virtual host.
  • 21. Config/ Global Environment 1. ServerToken & ServerSignature ServerSignature Off ServerTokens Prod  giảm nguy hơ bị lộ thông tin về phiên bản Apache đang chạyTrên server 2. ServerRoot Cấu hình thư mục lưu trữ chính của Apache
  • 22. Config/ Global Environment 3. PidFile Thông số này lưu trữ đường dẫn đến file httpd.pid, là file lưu giữ process ID của Apache mỗi khi khởi chạy. 4. Timeout Thời gian time out cho hệ thống, giá trị mặc định 5. KeepAlive Cho phép hay không kiểu kết nối KeepAlive được hoạt động. KeepAlive là một hình thức có thể giúp tăng tốc độ tải trang khi không mở kết nối cho từng gói request một. Tuy nhiên, khi bị tấn công DDoS thì nên tắt chức năng này để giảm thiểu ảnh hưởng tới hệ thống. KeepAliveTimeout
  • 23. Config/ Global Environment 6. Listen Thông số này dùng để cấu hình địa chỉ IP và port mà Apache sẽ nhận các gói HTTP Request 7. LoadModule Dùng để chọn những module nào sẽ được khởi động cùng với hệ thống Apache. 8. Include Cấu hình thư mục chứa file config
  • 24. Config/ Main Server Configuration 1. ServerAdmin Cấu hình địa chỉ email của người quản trị, thông tin này sẽ được hiển thị trên một số trang web nhất định, ví dụ như trang báo lỗi. 2. UseCanonicalName Thông thường khi sử dụng Name-based Virtual Host thì nên set thông số này là Off 3. DocumentRoot Thư mục lưu trữ các đường dẫn chứa mã nguồn của website. Các request từ client thông thường sẽ chỉ truy xuất được thông tin từ thư mục này.
  • 25. Config/ Main Server Configuration 4. DirectoryIndex Chỉ định file mặc định được trả về cho client khi có request tới một thư mục nào đó. Thông thường các file như index.html, index.php sẽ được sử dụng. DirectoryIndex index.html index.html.var 5. AccessFileName Chỉ định file bổ sung các cấu hình riêng cho từng thư mục nhất định. Thông thường sẽ là file “.htaccess” như sau:
  • 26. Config/ Main Server Configuration 6. TypesConfig Chỉ đường dẫn đến file mime.types. File này sẽ giúp cho Apache tra cứu phần mở rộng của file để xác định MIME type trong HTTP Header. DefaultType text/plain Mặc định MIME type cho các file apache không xác định được sẽ là kiểu file text. 7. HostnameLookups Cấu hình ghi log tên hostname của client hay chỉ địa chỉ IP của client.
  • 27. Config/ Main Server Configuration 8. ErrorLog Cấu hình đường dẫn lưu trữ Error của hệ thống 9. LogLevel Mức độ ghi log. Giống như syslog, log trong Apache cũng được ghi chia thành 7 mức độ khác nhau, từ cao xuống thấp là emergency, alert, critical, error, warning, notification, informational, debug. 10. Log
  • 28. Apache Virtual Host Bằng cách sử dụng Virtual Host trong Apache HTTP Server, người quản trị có thể chạy đồng thời nhiều website trên cùng một server. Với kỹ thuật này, tài nguyên của server được tận dụng hiệu quả tối đa. Có hai loại cấu hình Apache sẽ được trình bày, bao gồm: 1. IP-based Virtual Host 2. Name-based Virtual Host
  • 29. IP Based Virtual Host Apache Server 1.1.1.1 1.1.1.2 A.com B.com Trỏ từng website vào các địa chỉ khác nhau => trên server cần có nhiều hơn 1 địa chỉ IP
  • 30. Name-based Virtual Host Thông tin hostname được lưu trong phần Header của bản tin Apache Server HTTP Request. Khi nhận các bản 1.1.1.1 tin Request này thì Apache sẽ A.com chuyển đển các virtual host B.com tương ứng để xử lý => Chi cần sử dụng 1 IP, trỏ nhiều domain name vào cùng IP đó
  • 31. Virtual Host Configuration Cấu hình virtual host được thực hiện trong file httpd.conf hoặc file httpd-vhosts.conf Với cấu hình Virtual Host, cần cầu hình các thành phần sau đây:  Đường dẫn đến thư mục lưu trữ web.  Server Name.  Đường dẫn đến file log.
  • 32. vHost Configuration Example <VirtualHost 10.1.2.3:80> ServerAdmin webmaster@host.example.com DocumentRoot /www/docs/host.example.com ServerName host.example.com ErrorLog logs/host.example.com-error_log TransferLog logs/host.example.com-access_log </VirtualHost>
  • 33. Multiprocessing Có 2 khái niệm về khả năng xử lý của Web Server :  Single-threaded Web Server: Không có khả năng xử lý đồng thời nhiều request cùng một lúc  Multi-thread Web Server: Có khả năng xử lý nhiều request cùng lúc, gồm 2 kỹ thuật chính:  Miltiprocess: Tạo Process mới cho từng Request.  Multithread: Tạo Thread mới cho từng Request.
  • 34. Process vs Thread  sử dụng kỹ thuật đa nhiệm dựa vào thread sẽ tiết kiệm được tài nguyên phần cứng và tăng tốc độ xử lý giữa các tác vụ khác nhau. Kiểu xử lý đa nhiệm bằng cách tạo process sẽ ấn định bộ nhớ cho từng request được nhận, do vậy khả năng xử lý của kỹ thuật này có phần hạn chế hơn.
  • 35. Multiprocessing in Apache Trong Apache cũng có các module có chức năng hỗ trợ khả năng xử lý đa nhiệm cho server. Các module này được gọi là Multiprocessing Modules (MPMs). Trong Apache quan tâm chủ yếu đến 2 MPMs:  prefork  worker
  • 36. Prefork vs. Worker Prefork Worker Multiprocessing Multithreading Tạo ra các process riêng biệt Tạo ra các thread riêng biệt => phù hợp hơn đối với các hệ thống xử lý đa lõi Lỗi trên 1 process không thể gây ảnh hưởng Khi có lỗi xảy ra trên 1 thread thì các thread lên các process khác cùng process có thể bị ảnh hưởng Việc lựa chọn kỹ thuật xử lý còn tùy thuộc vào nhiều yếu tố khác của server, ví dụ PHP không hoạt động ổn định với hình thức chia sẻ bộ nhớ chung của Worker nên thường phải sử dụng Prefork
  • 37. APACHE MODULES Nằm bên trong các Modules cũng như file cấu hình Apache nhằm chỉ thị các hoạt động của Apache.
  • 38. APACHE MODULES ► Description: tổng quát chức năng ► Status: (MPM, Base, Extension, Experimental, External). ► Module Indentifier ► Source file
  • 39. MODULES – MOD_CACHE Cache nội dung trang web, làm tăng tốc độ truy cập website – cần sử dụng kết hợp module này với mod_disk_cache hoặc mod_mem_cache. Config: <IfModule mod_cache.c> LoadModule mem_cache_module modules/mod_mem_cache.so <IfModule mod_mem_cache.c> CacheEnable mem / MCacheSize 4096 MCacheMaxObjectCount 100 MCacheMinObjectSize 1 MCacheMaxObjectSize 2048 </IfModule> </IfModule>
  • 40. MODULES – MOD_GZIP/DEFLATE Nén dữ liệu trước khi gửi tới client Config: <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch bMSIE !no-gzip !gzip-only-text/html # Don’t compress image SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-v # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location>
  • 41. MODULES – MOD_SSL Mã hóa dữ liệu sử dụng giao thức Secure Sockets Layer ( SSL ) và bảo mật giao thức ở tầng giao vận ( TLS ) Config: <VirtualHost *:443> ServerAdmin usera.com DocumentRoot "/var/www/html/tien.td/" SSLEngine on ServerName usera.com SSLCertificateFile /var/www/html/tien.td/ssl/server.crt SSLCertificateKeyFile /var/www/html/tien.td/ssl/server.key </VirtualHost>
  • 42. Nội dung  Giới thiệu  Tóm tắt và cấu hình các module  Cách hoạt động và so sánh  Lab
  • 43. Giới thiệu  php_module : được đánh giá nhanh nhất, bảo mật kém. (DSO)  cgi_module : giúp php process tách biệt với process của apache, hỗ trợ chạy user riêng biệt (suexec on). Chậm hơn mod_php 36 lần.  cgid_module : tương tự như mod_cgi nhưng được enable nếu chọn multi threaded MPM (worker) khi compile.  suphp_module: nâng cao độ bảo mật, chậm hơn so với php_module và cgi (suexec off), nhanh hơn cgi (suexec on). Chậm hơn mod_php 25 lần.  fcgid_module : nhanh hơn mod_suphp, và độ bảo mật cao.
  • 44. Mod_php  PHP interpreter được load vào apache process  PHP khởi động cùng với apache, load nhanh  Cấu hình:  LoadModule php5_module modules/libphp5.so  AddHandler php5-script .php
  • 45. Mod_cgi  Với mỗi request, web server spawns 1 process mới để run CGI program.  CGI tách biệt với apache, giao tiếp qua pipe I/O  Khởi tạo Process để xử lý 1 request, terminate sau đó  Cấu hình:  ScriptAlias /local-bin /usr/local/bin  AddHandler application/x-httpd-php5 php  Action application/x-httpd-php5 /local-bin/php-cgi  <Directory "/usr/local/bin">  Order allow,deny  Allow from all  </Directory>
  • 46. Mod_suphp  Hoạt động như cgi nhưng có cơ chế riêng để thực thi quyền user  Cấu hình:  httpd.conf  webserver_user=apache  x-httpd-php=php:/usr/bin/php hoặc x-httpd-php="php:/usr/bin/php-cgi"  x-suphp-cgi=execute:!self hoặc x-suphp-cgi="execute:!self"  AddHandler x-httpd-php .php .php3 .php4 .php5  suPHP_Engine on  suPHP_AddHandler x-httpd-php  VirtualHost:  suPHP_UserGroup username groupname 
  • 47. Mod_fcgid  Hoạt động như cgi tuy nhiên có 2 điểm khác biệt  Fastcgi process vẫn tồn tại sau khi xử lý request (mặc định 500)  Apache và fastcgi giao tiếp qua TCP connection  Tiêu thụ nhiều ram do các process chiếm giữ, ít tốn cpu do không phải thực hiện khởi tạo, chấm dứt process.
  • 49. SuEXEC (Switch User for EXEC)  Cho phép CGI scripts chạy theo từng user  Suexec được cấu hình cho mỗi virtual host  Cấu hình:  SuexecUserGroup nobody nogroup