Apache 的管理及优化web
目錄
一、Apache的作用
二、Apache的安裝
三、Apache的啟用
四、Apache的基本信息
五、Apache的基本配置
六、Apache的訪問控制
七、Apache的虛擬主機
八、Apache的語言支持
九、Apache的加密訪問
一、Apache的作用
在web被訪問時通常使用http://的方式
http://?? ??? ??? ?##超文本傳輸協議
http://?? ?超文本傳輸協議提供軟件:
Apache
nginx
stgw
jfe
Tengine
二、Apache的安裝
dnf install httpd.x86_64 -y
?
三、Apache的啟用
systemctl enable --now httpd?? ??? ??? ?##開啟服務并設定服務位開機啟動
firewall-cmd --list-all?? ??? ??? ?##查看火墻信息
firewall-cmd --permanent --add-service=http?? ?##在火墻中永久開啟http訪問
firewall-cmd --permanent --add-service=https?? ?##在火墻中永久開啟https訪問
firewall-cmd --reload?? ??? ??? ??? ?##刷新火墻使設定生效????????????????????
或者關閉火墻
setenforce 0????
四、Apache的基本信息
服務名稱:?? ?httpd
配置文件:
?? ??? ?/etc/httpd/conf/httpd.conf?? ?##主配置文件
?? ??? ?/etc/httpd/conf.d/*.conf?? ?##子配置文件
默認發布目錄:?? ?/var/www/html
默認發布文件:?? ?index.html
默認端口:?? ?80?? ? ? #http
?? ??? ??????????????? 443?? ?? #https
用戶:?? ??? ?apache
日志:?? ??? ?/etc/httpd/logs
五、Apache的基本配置
#1.Apache端口修改#
vim /etc/httpd/conf/httpd.conf
Listen 6666
firewall-cmd --permanent --add-port=6666/tcp
firewall-cmd --reload
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 6666
systemctl restart httpd
#2.默認發布文件##
vim /etc/httpd/conf/httpd.conf
DirectoryIndex westos.html index.html???????????????????????? 哪個文件在前哪個優先訪問
vim /var/www/html/westos.html??? Hello westos
systemctl restart httpd
#3.默認發布目錄
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/webdir/html"
<Directory "/var/webdir/html">
??????? Require all granted
</Directory>
mkdir -p /var/webdir/html
vim /var/webdir/html/index.html??? 編輯內容HELLO
semanage fcontext -a -t httpd_sys_content_t '/webdir(/.*)?'
restorecon -RvvF /webdir/
systemctl restart httpd
驗證:firefox http://172.25.254.101
?
?
六、Apache的訪問控制
#實驗素材#
mkdir /var/www/html/westos
vim /var/www/html/westos/index.html
<h1>westosdir's page</h1>
firefox http://192.168.0.11/westos
#1.基于客戶端ip的訪問控制#
#ip白名單#
<Directory "/var/www/html">
??????? Order Deny,Allow
??????? Allow from 172.25.254.1? ????
??????? Deny from All
</Directory>
驗證
#ip黑名單#
<Directory "/var/www/html/westos">
??????? Order Allow,Deny
??????? Allow from All?? ??? ?
??????? Deny from 172.25.254.1
</Directory>
驗證
#2.基于用戶認證#
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/westos">
??????? AuthUserfile /etc/httpd/htpasswdfile?? ??? ??? ?##指定認證文件
??????? AuthName "Please input your name and password"?? ??? ?##認證提示語
??????? AuthType basic?? ??? ??? ??? ??? ??? ?##認證類型
??????? Require user admin?? ??? ??? ??? ??? ?##允許通過的認證用戶 2選1
?? ???? Require valid-user?? ??? ??? ??? ??? ?##允許所有用戶通過認證 2選1
</Directory>
htpasswd -cm /etc/httpd/htpasswdfile admin?? ??? ??? ?##生成認證文件
注意:
當/etc/httpd/htpasswdfile存在那么在添加用戶時不要加-c參數否則會覆蓋源文件內容
?
七、Apache的虛擬主機
mkdir -p /var/www/westos.com/{news,linux}
echo "linux's page" >/var/www/westos.com/linux/index.html
echo "news's page" > /var/www/westos.com/news/index.html
echo "default's page" > /var/www/html/index.html
vim /etc/httpd/conf.d/Vhost.conf
<VirtualHost _default_:80>
?? ?DocumentRoot "/var/www/html"
?? ?CustomLog logs/default.log combined
</VirtualHost>
<VirtualHost *:80>
?? ?ServerName wenku.westos.com
?? ?DocumentRoot "/var/www/westos.com/wenku"
?? ?CustomLog logs/wenku.log combined
</VirtualHost>
<VirtualHost *:80>
?? ?ServerName news.westos.com
?? ?DocumentRoot "/var/www/westos.com/news"
?? ?CustomLog logs/news.log combined
</VirtualHost>
測試:
在瀏覽器所在主機中
vim /etc/hosts
172.25.254.101 www.westos.com wenku.westos.ocm news.westos.com
firefox http://www.westos.com
firefox http://wenku.westos.com
firefox http://news.westos.com
八、Apache的語言支持
#php#
vim /var/www/html/index.php
<?php
?? ?phpinfo();
?>
dnf install php -y
systemctl restart httpd
firefox http://172.25.254.101/index.php
#cgi#
mkdir /var/www/html/cgidir
vim /var/www/html/cgidir/index.cgi
chmod +x index.cgi?? 給執行權限
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
vim /etc/httpd/conf.d/Vhost.conf
<Directory "/var/www/html/cgidir">
?? ?Options +ExecCGI
?? ?AddHandler cgi-script .cgi
?? ?
</Directory>
firefox http://192.168.0.11/cgidir/index.cgi
#wsgi#
vim /var/www/html/wsgidir/index.wsgi
def application(env,start_response):
??????? start_response('200 OK',[('Content-Type','text/html')])
??????? return[b"hello world"]
chmod +x index.wsgi
vim /etc/httpd/conf.d/Vhost.conf
<VirtualHost *:80>
??? serverName wsgi.westos.com
??? WSGIScriptAlias / /var/www/html/wsgidir/index.wsgi
</VirtualHost>
dnf install python3-mod_wsgi.x86_64
systemctl restart httpd
驗證:
九、Apache的加密訪問
?
##安裝加密插件
dnf install mod_ssl -y
##生成證書
openssl genrsa -out /etc/pki/tls/private/www.westos.com.key????? 2048?? ?#生成私鑰
openssl req -new -key /etc/pki/tls/private/www.westos.com.key \
-out /etc/pki/tls/certs/www.westos.com.csr?? ??? ??? ??? ?##生成證書簽名文件
openssl x509? -req -days 365 -in? \
/etc/pki/tls/certs/www.westos.com.csr \
-signkey /etc/pki/tls/private/www.westos.com.key \
-out /etc/pki/tls/certs/www.westos.com.crt?? ??? ??? ??? ?#生成證書
x509 證書格式
-req 請求
-in 加載簽證名稱
-signkey?? ?/etc/pki/tls/private/www.westos.com.key
生成證書簽名文件
生成證書
?
vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
?? ?ServerName login.westos.com
?? ?RewriteEngine on
?? ?RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1
</VirtualHost>
<VirtualHost *:443>
?? ?ServerName login.westos.com
?? ?DocumentRoot "/www/westos.com/login"
?? ?CustomLog logs/login.log combined
?? ?SSLEngine on
?? ?SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
?? ?SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</VirtualHost>
systemctl restart httpd
^(/.*)$?? ??? ?##客戶地址欄中輸入的地址
%{HTTP_HOST}?? ?##客戶主機
$1?? ??? ?##RewriteRule后面跟的第一串字符的值
驗證:
十、Squid+Apache???
#squid 正向代理#
實驗環境:
單網卡主機設定ip不能上網
雙網卡主機設定ip1可以連接單網卡主機,設定ip2可以上網
實驗效果
讓單網卡主機不能上網但瀏覽器可以訪問互聯網頁
操作:
在雙網卡主機中(172.25.254.1)
dnf install squid -y
vim /etc/squid/squid.conf
59 http_access allow all
65 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid
firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
在單網卡專輯中選擇?? (172.25.254.101)
NetWork Proxy
172.25.254.1 ?? 3128
測試:
在單網卡主機中
ping www.baidu.com?? ?不通
在瀏覽器中訪問www.baidu.com可以
#squid反向代理#
實驗環境:
172.25.254.101 ? ???? ##Apache服務器
172.25.254.1 ? ???? ##squid,沒有數據負責緩存
vim /etc/squid/squid.conf
http_port 80 vhost vport?? ??? ?##vhost 支持虛擬域名 vport 支持虛擬端口
#當172.25.254.1的80端口被訪問會從172.25.254.101的80端口緩存數據
cache_peer 172.25.254.101 parent? 80????? 0?????? proxy-only
??????????????????????????????? 80端口???????? 沒有備用代理??? 只作代理
systemctl restart squid
測試:
firefox http:/172.25.254.1
訪問看到的時172.25.254.101上的數據
?
?
?
總結
以上是生活随笔為你收集整理的Apache 的管理及优化web的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vsftpd服务的部署及优化
- 下一篇: 企业dns 服务器的搭建