[Apache 相關配置]
阿新 • • 發佈:2021-12-14
Apache 網站伺服器 (httpd服務)
http 超文字傳輸協議
埠是 80/TCP
https 經TLS/SSL安全加密的超文字傳輸協議
埠是 443/TCP
網站內容預設存放路徑 /var/www/html
一、配置預設的Apache服務
1、安裝httpd的前提
(Yum 和 IP)詳情請看 Linux的基礎操作
1)有client(客戶機)、server(服務機) 客戶機測試,可以用Windows
2)client(客戶機)、server(服務機)都配置好 同一網段的網路
3)server(服務機)配置yum源
2、安裝httpd服務
root@localhost ~]# yum -y install httpd root@localhost ~]# systemctl restart httpd root@localhost ~]# systemctl enable httpd 安裝好後設置為開機自啟
3、配置防火牆 及 測試
root@localhost ~]# firewall-cmd --permanent --add-service=http
root@localhost ~]# firewall-cmd --reload
也可以選擇關閉防火牆
root@localhost ~]# curl http://192.168.100.10 用curl命令開啟連結
root@localhost ~]# firefox http://192.168.100.10 用火狐開啟連結
二、配置基於使用者的個人網站
基於第一步的基礎上開始做
1、修改基於使用者的httpd配置檔案
root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf UserDir enabled 開啟 UserDir public_html 去#註釋
2、新建使用者並建立個網頁
root@localhost ~]# useradd user0 建立個user0的使用者
root@localhost ~]# cd /home/user0/
root@localhost user0]# mkdir public_html 在user0的家目錄裡建立public_html檔案
root@localhost user0]# echo "this is website for user0">>index.html 把一個短句列印到超連結檔案裡
3、修改使用者網頁檔案的訪問許可權
root@localhost ~]# chmod o+x /home/user0 給其他使用者加執行許可權 root@localhost ~]# systemctl restart httpd 重啟服務
4、修改selinux許可權 並 測試
root@localhost ~]# getsebool -a|grep home 檢視home下的selinux許可權
root@localhost ~]# setsebool httpd_enable_homedirs on
root@localhost ~]# curl http://192.168.100.10/~user0 用curl命令開啟連結
root@localhost ~]# firefox http://192.168.100.10/~user0 用火狐開啟連結
三、配置基於域名訪問的虛擬主機
虛擬主機就是 不在預設路徑裡 /var/www/html
例如 www.one.com 創在/www裡
1、新建虛擬主機的網頁檔案
root@localhost ~]# mkdir /www/
root@localhost ~]# chmod o+x /www
root@localhost ~]# cd /www
root@localhost ~]# mkdir one
root@localhost ~]# cd one
root@localhost one]# echo "this is a web for virtual host www.one.com">>index.html
1、配置輔配置檔案
root@localhost one]# cd /etc/httpd/conf.d
root@localhost conf.d]# vim one.conf 新建一個one.conf的配置檔案
<Directory /www/one>
Require all granted
</Directory>
<VirtualHost 192.168.100.10>
ServerName www.one.com
DocumentRoot /www/one/
</VirtualHost>
2、配置域名解析 並 重啟服務
root@localhost ~]# vim /etc/hosts 服務端和客戶端都要加
192.168.100.10 www.one.com
root@localhost ~]# systemctl restart httpd
3、修改網頁檔案的selinux上下文型別
root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?' 把/www目錄下的上下文型別都修改成 httpd_sys_content_t
root@localhost ~]# restorecon -RFv /www 強刷上下文型別
root@localhost ~]# curl http://www.one.com 用curl命令開啟連結
root@localhost ~]# firefox http://www.one.com 用火狐開啟連結
四、基於埠訪問虛擬主機
例如192.168.100.10:8088
1、新建虛擬主機的網頁檔案
root@localhost ~]# mkdir /www/8088
root@localhost 8088]# echo "this is port 8088 for website www.one.com">>index.html
2、修改 配置檔案
root@localhost 8088]# cd /etc/httpd/conf.d
root@localhost conf.d]# vim 8088.conf 在輔配置檔案做修改
<Directory /www/8088/>
Require all granted
</Directory>
<virtualHost 192.168.100.10:8088>
DocumentRoot /www/8088/
root@localhost ~]# cd /etc/httpd/conf/
root@localhost ~]# vim httpd.conf 在主配置檔案裡做修改
Listen 8088 新增一行
3、修改 selinux設定
將8088埠加入httpd服務埠型別
root@localhost ~]# semanage port -a 8088 -t http_port_t -p tcp
root@localhost ~]# semanage port -a 8089 -t http_port_t -p tcp
root@localhost ~]# semanage port -l | grep http
4、在防火牆裡放行8088埠 並測試
root@localhost ~]# firewall-cmd --permanent --add-port=8088
root@localhost ~]# firewall-cmd --reload
root@localhost ~]# firewall-cmd --list-all
root@localhost ~]# curl http://192.168.100.10:8088 用curl命令開啟連結
root@localhost ~]# firefox http://192.168.100.10:8088 用火狐開啟連結
五、配置基於TLS加密的虛擬主機
剛剛安裝Apache服務,沒有做過任何配置
不能做基於使用者訪問
安裝TLS加密軟體
root@localhost ~]# yum -y install mod_ssl
生成金鑰
root@localhost ~]# openssl genrsa >tlsweb.key
生成證書請求檔案
root@localhost ~]# openssl req -new -key tlsweb.key > tlsweb.csr
生成證書檔案
root@localhost ~]# openssl req -x509 -days 365 -key tlsweb.key -in tlsweb.csr >tlsweb.crt
修改ssl.conf配置檔案
root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key
把證書檔案拷貝到certs/路徑下面
root@localhost ~]# cp tlsweb.crt /etc/pki/tls/certs/
把祕鑰檔案拷貝到private/路徑下面
root@localhost ~]# cp tlsweb.key /etc/pki/tls/private/
重啟服務
root@localhost ~]# systemctl restart httpd
使用瀏覽器訪問
root@localhost ~]# firefox https://192.168.100.10