web服務器主要是提供上網信息瀏覽服務。
Apache HTTPD Server 簡稱 Apache,是 Apache 軟件基金會的一個開源的網頁服務器, 可以在大多數計算機操作系統中運行,由於其多平台和安全性被廣泛使用,是最流行的 Web 服務器端軟件之一。它快速、可靠並且可通過簡單的 API 擴展,將 Perl/Python 等解釋器編 譯到服務器中!Apache HTTP 服務器是一個模塊化的服務器,各個功能使用模塊化進行插拔! 目前支持 Windows,Linux,Unix 等平台!
Web 服務器的工作模式和端口
工作模式是:B/S 模式
工作端口是:80/http 正常端口443/https SSL 端口
安裝apache服務 [root@x101 ~]# yum -y install httpd 安裝elink字符瀏覽器 [root@x101 ~]# yum -y install elinks 編輯httpd主配置文件 [root@x101 ~]# vim /etc/httpd/conf/httpd.conf 啟動httpd服務 [root@x101 ~]# systemctl start httpd 字符瀏覽器訪問測試 [root@x101 ~]# elinks 192.168.0.101 也可以使用windows客戶端瀏覽器訪問測試, firefox地址欄輸入 http://192.168.0.101
httpd服務主配置文件解析 [root@x101 ~]# vim /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" httpd服務安裝目錄 Listen 80 監聽端口 Include conf.modules.d/*.conf 包含conf.moudules.d目錄下所有的.conf文件 User apache 運行的用戶身份 Group apache 運行的組身份 ServerAdmin root@localhost 管理員郵箱 #ServerName www.example.com:80 服務器主機名,域名 <Directory /> AllowOverride none Require all denied </Directory> httpd的一個功能模塊 DocumentRoot "/var/www/html" 默認網站服務的主目錄 <Directory "/var/www"> AllowOverride None # Allow open access: Require all granted </Directory> 對/var/www目錄做的權限設置 <Directory "/var/www/html"> Options Indexes FollowSymLinks MultiViews indexes表示如何網站主目錄中沒用默認首頁時,會顯示網站目錄索引列表;FollowSymLinks表示允許在此目錄中使用符號鏈接;MultiViews模糊查詢; Order allow,deny 這里默認后者生效,也就是 deny 生效 Allow from all 這里說允許所有 AllowOverride None Require all granted </Directory> <Directory "/var/www/html">表示對/var/www/html目錄做的權限設置 <IfModule dir_module> DirectoryIndex index.html 指定默認首頁 </IfModule> ErrorLog "logs/error_log" 定義錯誤日志存放位置 </IfModule> CustomLog "logs/access_log" combined 定義訪問日志存儲路徑 </IfModule> AddDefaultCharset UTF-8 設置服務器的默認編碼為: UTF-8 IncludeOptional conf.d/*.conf 加載conf.d目錄下的所有conf文件,通常用於一台服務器配置多個虛擬主機,每個虛擬主機使用單獨的.conf配置文件,存儲在conf.d目錄下
取消網站默認首頁,配置文件welcome.conf,注釋掉以下4行即可 [root@x101 html]# vim /etc/httpd/conf.d/welcome.conf #<LocationMatch "^/+$"> # Options -Indexes # ErrorDocument 403 /.noindex.html #</LocationMatch> [root@x101 html]# systemctl restart httpd
訪問測試:
取消網站目錄列表顯示,編輯httpd.conf,去掉以下選項中的Indexes即可。
[root@x101 ~]# vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
indexes表示如何網站主目錄中沒用默認首頁時,會顯示網站目錄索引列表;FollowSymLinks表示允許在此目錄中使用符號鏈接
</Directory>
修改配置文件,重啟httpd服務生效。
[root@x101 html]# systemctl restart httpd
測試:
apache軟件版本查看 [root@x101 html]# yum list httpd Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Installed Packages httpd.x86_64 2.4.6-67.el7.centos @rhel Available Packages httpd.x86_64 2.4.6-93.el7.centos base 或者使用以下命令 [root@x101 html]# httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Aug 4 2017 03:19:10
客戶端與服務端查看結果一致:
創建默認首頁
[root@x101 html]# echo "welcome to yuqianwan" > index.html
測試訪問:
更改網站默認主目錄為自定義目錄wcg,並更改權限 [root@x101 html]# vim /etc/httpd/conf DocumentRoot "/var/www/html/wcg" <Directory "/var/www/html/wcg"> Options FollowSymLinks AllowOverride None Order allow,deny allow from 192.168.0.0/24 deny from 192.168.0.0/24 Require all granted </Directory> 注意權限,Order allow,deny,在Order最后面的權限較高 [root@x101 html]# mkdir /var/www/html/wcg [root@x101 html]# cat /var/www/html/wcg/index.html welcome to WCG
更改Order deny,allow之后,測試訪問:
使用別名,引用網站更目錄以外路徑 將/usr/local/share目錄通過虛擬目錄功能添加到網站根目錄。當訪問http://192.168.0.101/share時,就可以訪問目錄/usr/local/share中的內容 注意;apache的別名也叫做虛擬目錄 修改httpd.conf主配置文件 [root@x101 html]# vim /etc/httpd/conf/httpd.conf Alias /share /usr/local/share <Directory "/usr/local/share"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from 192.168.0.0/24 Require all granted </Directory> [root@x101 html]# systemctl restart httpd [root@x101 ~]# mkdir /usr/local/share [root@x101 share]# cp /boot/* .
訪問測試:
打開軟鏈接功能,直接引用網站根目錄以外內容 [root@x101 html]# mkdir /web1 [root@x101 html]# echo "hello web1" > /web1/a.html [root@x101 html]# ln -s /web1 /var/www/html/wcg/web1 [root@x101 html]# ll wcg/ total 4 -rw-r--r-- 1 root root 16 Aug 19 12:38 index.html lrwxrwxrwx 1 root root 5 Aug 19 14:55 web1 -> /web1 [root@x101 html]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/wcg" <Directory "/var/www/html/wcg"> Options Indexes FollowSymLinks AllowOverride None Order deny,allow allow from all deny from 192.168.0.0/24 Require all granted </Directory>
注意:httpd.conf文件中必需要有Options Indexes FollowSymLinks配置項,才可以使用軟鏈接功能。
訪問測試:
通過用戶認證的方式,對網站下/usr/local/share目錄進行保護。設置/usr/local/share目錄,只能通過用戶名密碼方式訪問。 方法一:[root@x101 html]# vim /etc/httpd/conf/httpd.conf Alias /share /usr/local/share <Directory "/usr/local/share"> Options Indexes FollowSymLinks AllowOverride AuthConfig #開啟認證方式 Order deny,allow Allow from all authtype basic #基本認證 authname “weicome to web” #提示信息 Authuserfile /etc/httpd/conf/passwd.secret #密碼文件路徑 Require valid-user </Directory>
方法二: [root@x101 html]# vim /etc/httpd/conf/httpd.conf Alias /share /usr/local/share <Directory "/usr/local/share"> Options Indexes FollowSymLinks AllowOverride AuthConfig #開啟認證方式 Order deny,allow Allow from all </Directory>
在別名目錄中新建頭文件.htaccess,將auth相關的內容寫入其中,重啟服務生效。 [root@x101 html]# vim /usr/local/share/.htaccess authtype basic #基本認證 authname “weicome to web” #提示信息 Authuserfile /etc/httpd/conf/passwd.secret #密碼文件路徑 Require valid-user [root@x101 html]# systemctl restart httpd 生成密碼文件 [root@x101 html]# htpasswd -cm /etc/httpd/conf/passwd.secret feng New password: Re-type new password: Adding password for user feng [root@x101 html]#
參數詳解:
authtype basic#authtype命令:指定認證類型為:basic。
authname "my web site " #AuthName命令:指定認證區域名稱。區域名稱是在提示要求認證的對話框中顯示給用戶的。
authuserfile /etc/httpd/conf/passwd.secret #AuthUserFile命令:指定一個包含用戶名和密碼的文本文件,每行一對。
require命令 #指定哪些用戶或組才能被授權訪問。如:
require user user1 user2(只有用戶user1和user2可以訪問)
require valid-user (在AuthUserFile指定的文件中任何用戶都可以訪問)
訪問測試: