linux服務器配置實例<10>---配置web服務器

配置web服務器

.Web服務器簡介:

5.Apache的性能:web服務器的功能和運行性能是最重要的因素.Apache的衆多特性保證了它可以高效而且穩定的運行

DOS,動態共享對象,允許運行時動態裝載模塊、採用預生成技術提高響應速度、運行在幾乎所有的計算機平臺、支持最新的HTTP1.1協議、簡單而強有力的基於文件的配置、支持虛擬主機、支持HTTP認證、集成了代理服務器、且有可定製的服務器日誌、支持安全Socket(SSL)、用戶會話過程的跟蹤能力、支持通用網關接口CGI、集成Perl腳本編程語言、支持服務器端包含命令(SSI)、支持FastCGI、支持PHP、支持Java Servlets、支持第三方軟件開發商提供的大量功能模塊

6.Apache的三種運行方式:Multi-processing modules

預派生(Profork):首先啓動一個父進程,然後創建並啓動一定數量的子進程監聽客戶的請求,父進程始終監控子進程,啓動時自動生成8個子進程,最小空閒進程5

工作者(Worker MPM):此模塊是混合使用進和線程的運行模型,首先啓動一個父進程,然後創建並啓動一定數量的子進程 ,每個子進程都創建 並啓動相同數量的線程,由線程監聽客戶的請求,父進程始終監控子進程,當沒有足夠的空閒線程爲客戶服務時,父進程就會創建並運行新的子進程

獨立子進程(Perchild):混合使用進程和線程的運行模式,每個子進程都可以創建指定數量的線程,當服務器上負載增加後,Apache不會創建新的子進程,而是在當前的子進程之一上創建新的線程爲客戶提供服務,具有高擴展性,低可靠性

.Apache2.0的模塊:仍舊使用模塊的方式運行,Apache由內核、標準模塊和第三方提供的模塊3個層次組成

.Apache的安裝和啓動:

1.Apache的安裝

2.啓動Apache

#service httpd restart

#pstree|grep httpd

#apachect1 configtest|httpd -t檢測配置文件語法的正確性

#service httpd status

#ntsysv

#apachect configtest|httpd -t檢查配置文件語法的正確性

#apachectl -v查看編譯配置參數

#apachectl -l查看已經被編譯的模塊

mod_so.c表示當前的Apache支持Dynamic Shared Objects(DSO),即用戶可以在不重新編譯Apache的情況下使用Apache eXenSion編譯的第三方模塊

prefork.c表示Red Hat發佈的Apache是使用預派生MPM模式運行的

3.Apache的基本配置

KeepAlive on使用保連接的功能,即一次請求連接能響應多個文件

MaxClients 150限制同一時間的連接數不能超過150

ServerAdmin root@localhost設置Apache服務器管理員的E-mail地址

ServerName [url]www.abc.com:80[/url]Apache服務器需要指向本身的連接時使用

DirectoryIndex index.html index.html.var當訪問服務器時依次查找頁面index.htmlindex.html.var

IndexOptions 可以在此指令後添加FolderFirst表示讓目錄列有前面

4.分割配置任務

使用Inclde指令:例如可以將所與虛擬主機配置相關的配置單獨存成一個配置文件,然後在主配置文件中將其包含進來

使用.htaccess文件:用於改變主配置文件中的配置,只能設置對目錄的訪問控制,它可以覆蓋主配置文件中的配置,而Include只是簡單的包含

(1).何時使用.htaccess不重新啓動服務器的情況下改變服務器配置

(2).步驟:

首先在主配置文件中啓用並控制對.htaccess文件的使用

然後在需要蓋主配置文件的目錄下生成.htaccess文件

(3).啓用並控制使用.htaccess文件

設置文件名稱

AcessFileName .htaccess

<Files ~".\.htaccess">

    Order allow,deny

    Deny from all

</files>

1 .htaccess文件的訪問控制

#cd /var/www/html #mkdir private #cd private #touch test

修改主配置文件#vi /etc/httpd/conf/httpd.conf <Directory "/var/www/html/private">AllowOverride Options</Directory>

#service httpd restart

#vi /var/www/html/private/.htaccess 添加Options -Indexes

2配置每個用戶的Web站點

配置每個用戶的Web站點的意圖是使在安裝了Apache的本地計算機上,擁有用戶帳號的每個用戶都能夠架設自己單獨的Web站點

步驟:

修改主配置文件啓用每個用戶的Web站點配置

修改主配置文件爲每個用戶的Web站點目錄配置訪問控制

vi /etc/httpd/conf/httpd.conf

<IFModule mod_userdir.c>

  UserDir disable root

  UserDir public_html

</IfModule>

<Directory /home/*/public_html>

  AllowOverride FileInfo Authconfig Limit

  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

  <Limit GET POST OPTIONS>

  Order deny,allow

  Deny from all 

  </LimitExcept>

</Directory>

#su user1

#cd

#mkdir public_html

#chmod 711 /home/user1

創建Index.html的內容

訪問自己的主頁

[url]http://IP[/url]地址或FQDN/~用戶名

3配置虛擬主機

在一臺WEB服務器上,可以爲多個單獨域名提供Web服務,對於ISP的意義重大,因爲使用獨立的域名和根網址更爲正式,易爲衆人接受.

基於IP地址的虛擬主機:使用相同的IP地址,不同的端品號。不同的IP地址,相同的端口號

基於名字的虛擬主機:不同的主機頭,一個IP地址映射多個域名。

配置不同IP地址的虛擬主機:

#vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

#vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

#/etc/rc.d/init.d/network restart

#cd /etc/httpd

#vi vhost-conf.d/ip-vhost34.conf

<VirtualHost 192.168.1.57:80>

   ServerAdmin [email][email protected][/email]

   DocumentRoot /var/www/www1

   DirectoryIndex index.html

   ServerName www1.abc.com:80

</VirtualHost>

<VirtualHost 192.168.1.57:80>

   ServerAdmin [email][email protected][/email]

   DocumentRoot /var/www/www1

   DirectoryIndex index.html

   ServerName www1.abc.com:80

</VirtualHost>

創建默認文檔

#echo "Include vhost-conf.d/*.conf">>conf/httpd.conf

#vi /etc/httpd/conf/httpd.conf

 <Virtualhost 192.168.1.57:80>

       Server Admin [email][email protected][/email]

       DocumentRoot /var/www/html

       DirectoryIndex index.html

       ServerName  192.168.1.57

 </VirtualHost>

 <VirtualHost 192.168.1.77:80>

       Server Admin [email][email protected][/email]

       DocumentRoot /var/www/www1

       DirectoryIndex index.html

       ServerName 192.168.1.77

 </VirtualHost>

4:配置基於端口的虛擬主機,即相同IP地址不同端口號的虛擬主機

#vi vhost-conf.d/ip-vhost12.conf

listen 8080

listen 6666

<Virtualhost 192.168.1.57:8080>

       ServerAdmin [email][email protected][/email]

       DocumentRoot /var/www/www1

       DirectoryIndex index.html

       ServerName  rhl9.abc.com:8080

</VirtualHost>

<VirtualHost 192.168.1.57:6666>

       ServerAdmin [email][email protected][/email]

       DocumentRoot /var/www/www2

       DirectoryIndex index.html

       ServerName rhl9.abc.com:6666

</VirtualHost>

創建默認文檔

#echo "Include vhost-conf.d/*.conf">>conf/httpd.conf

5:配置基於主機頭的虛擬主機

配置DNS,編輯正向解析數據庫文件

www1 IN A 192.168.1.57

www2 IN A 192.168.1.57

#vi vhost-conf.d/n-vhost.conf

NameVirtualHost 192.168.1.57

<Virtualhost 192.168.1.57:80>

       ServerAdmin [email][email protected][/email]

       DocumentRoot /var/www/www1

       DirectoryIndex index.html

       ServerName  www1.abc.com

</VirtualHost>

<VirtualHost 192.168.1.57:80>

       ServerAdmin [email][email protected][/email]

       DocumentRoot /var/www/www2

       DirectoryIndex index.html

       ServerName www2.abc.com

</VirtualHost>

創建默認文檔

#echo "Incaf.d/*.conf">>conf/httpd.conf

6:訪問控制

訪問控制指令

Order deny,allow用於指定執行允許訪問規則和執行拒絕訪問的先後順序

Deny all表示所有客戶|abc.com域名錶示域內的所有客戶|IP地址,可以指定完整的IP地址或部分IP地址|192.168.1.0/255.255.255.0|192.168.1.0/24定義拒絕訪問列表

Allow定義允許訪問列表

<Directory /var/www/html/private>

   Order deny,allow

   deny from all

   allow from 192.168.1.57

</Directory>

7:認證和授權.兩種認證類,基本認證Basic和摘要Digest認證,摘要認證比基本認證更加安全,認證指令既可以出現在主配置文件的Directory容器中,也可以出現在./htaccess文件中

授權,爲指定用戶或組進行授權,授權指令爲Require

#vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html/private">

   AllowOverride None不使用.htaccess文件

  AuthType Basic指定基本認證方式

  AuthName "abc.com"指定認證領域名稱

   AuthUserFile /var/www/passwd/abc.com指定認證口令的存放位置

  require valid-user

</Directory>

創建認證口令文件,並添加兩個用戶

#cd /var/www/passwd

#htpasswd -c jamond osmond

#chown apache.apache jamond由於Apache的子進程以apache用戶運行

#service httpd restart

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章