十六.Apache的管理及優化

可樂~罐發表於2020-11-25

十六.Apache的管理及優化

1.Apache的啟用:
在這裡插入圖片描述

設定Apache開啟自啟,並現在開啟,在火牆中新增http為信任服務:
在這裡插入圖片描述
2.Apache的基本資訊:

在這裡插入圖片描述

3.Apache的基本配置:

3-1:Apache埠修改:

vim      /etc/httpd/conf/httpd.conf
Listen   8080
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload 
systemctl restart httpd

修改預設埠為8080,訪問效果如圖:
在這裡插入圖片描述
3-2.預設釋出檔案:

vim  /etc/httpd/conf/httpd.conf
DirectoryIndex  westos.html  index.html
systemctl restart httpd

在這裡插入圖片描述

3-3.預設釋出目錄:

vim  /etc/httpd/conf/httpd.conf
DocumentRoot "/westos/html"
<Directory "/westos/html">
     Require all granted   必須要有認證
</Directory>
systemctl restart httpd 

在這裡插入圖片描述

4.Apache的訪問控制:

4-1:基於客戶端ip的訪問控制:

#ip白名單#
<Directory "/var/www/html/westos">
        Order Deny,Allow
        Allow from  ip...
        Deny from all
</Directory>
先讀deny,禁止所有人訪問,後讀allow,允許ip...訪問;

#ip黑名單#
<Directory "/var/www/html/westos">
        Order Allow,Deny
        Allow from All		
        Deny from ip...
</Directory>
先讀allow,允許所有人訪問,後讀deny,禁止...訪問;

如圖所示配置為:只有154開啟訪問許可權:
在這裡插入圖片描述

4-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/.htpasswd admin	##生成認證檔案(新增使用者時需要去掉-c引數,不然之前的使用者資訊會被覆蓋)

注意:
當/etc/httpd/htpasswdfile存在那麼在新增使用者時不要加-c引數否則會覆蓋原始檔內容

注意:需要在<Directory “/var/www/html/westos”>中說明開啟使用者訪問控制的檔案:
在這裡插入圖片描述

5.Apache的虛擬主機 :

mkdir -p /var/www/westos.com/{news,wenku}
echo "wenku's page" >/var/www/westos.com/wenku/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/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>

測試時,別忘了修改/etc/hosts地址解析檔案:
在這裡插入圖片描述

6.Apache的語言支援:

#php#
vim /var/www/html/index.php
<?php
	phpinfo();
?>

dnf install php -y
systemctl restart httpd 
firefox http://192.168.0.11/index.php

#cgi(perl)#
mkdir /var/www/html/cgidir
vim /var/www/html/cgidir/index.cgi
chmod +X /var/www/html/cgidir/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>
systemctl restart httpd

firefox http://192.168.0.11/cgidir/index.cgi

wsgi(python)
mkdir /var/www/html/wsgidir
vim /var/www/html/wsgidir/index.wsgi
def application(env, westos):
     westos('200 ok',[('Content-Type','text/html')])
     return [b"'hello wsgi'"]
chmod +X /var/www/html/wsgidir/index.wsgi

vim /etc/httpd/conf.d/vhost.conf

<VirtualHost *:80>
	ServerName wsgi.westos.org
      WSGIScriptAlias /  /var/www/html//wsgi-scripts/index.wsgi
</VirtualHost>

dnf install python3 -y

systemctl restart httpd

7.Apache的加密訪問(https):

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

8.Apache 的網頁重寫功能:

vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
	ServerName login.westos.com
	RewriteEngine on
	RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1      ^(/.*)$表示使用者在位址列中輸入的內容;$1表示引數後的第一個字元;%{HTTP_HOST}表示在使用者主機中輸入
</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

9.squid 正向代理:
在這裡插入圖片描述
在虛擬機器中沒有網路連線,但是仍能開啟網頁:
在這裡插入圖片描述

10.squid反向代理:

在這裡插入圖片描述

相關文章