【linux进阶4】apache的服务使用(图文巨详细解释apache的正向和反向代理)
apache的使用
- 一、apache的基本介紹
- (1)Apache的作用
- (2)Apache的安裝和啟用
- (3)Apache的基本信息
- (4)基本查看
- 二、更改訪問apache默認訪問
- (1)Apache的訪問端口進行修改
- (2)Apache的默認發布文件進行修改
- (3)默認發布目錄更改
- 三 、Apache的訪問控制
- (1) 實驗環境
- (2)創建網頁訪問黑名單
- (3)創建ip黑名單
- (4)創建用戶認證
- 四、單主機發布多個網頁 (虛擬機)
- 五、apache支持的語言格式
- (1)創建php格式
- (2)創建cig格式(cgi通用網關接口)
- (3)創建wsgi文件(支持python語言)
- 六、網站加密認證(用https訪問)
- (1)認證的意義
- (2)安裝認證
- (3)對用戶訪問信息強制加密
- 七、squid 正向代理
- 八、squid反向代理
一、apache的基本介紹
(1)Apache的作用
我們在訪問web服務器時通常使用的是http://方式,即超文本傳輸協議,提供這一協議服務的軟件主要有Apache、nginx、stgw、jfe、Tengine等,比如百度web服務器使用的是Apache,淘寶web服務器使用的是Tengine。Linux發行的各個版本的系統絕大多數都使用的是Apache (Apache HTTP服務器),因此在這里我們主要對Apache的管理及web優化進行說明。
(2)Apache的安裝和啟用
本文用的虛擬機:
ip為172.25.42.100
1.、 虛擬機安裝apchae
2.、開啟火墻設置
vim /etc/sysconfig/selinux ##將其關閉為disabled,然后重啟 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 ##刷新火墻使設定生效(3)Apache的基本信息
| /etc/httpd/conf/httpd.conf | 主配置文件 |
| /etc/httpd/conf.d/*.conf | 子配置文件 |
| 默認發布目錄 | /var/www/html |
| 默認發布文件 | index.html |
| 默認端口 | 80 |
| 加密端口 | 443 |
| 用戶 | apache |
| 日志地址 | /etc/httpd/logs |
| 查看日志的方式 | cat /etc/httpd/logs/ |
(4)基本查看
開啟apache后可以查看到基礎網頁,說明apache服務開啟
二、更改訪問apache默認訪問
(1)Apache的訪問端口進行修改
1、 進入配置文件
vim /etc/httpd/conf/httpd.conf用/Listen搜索并修改端口為8080
2、建立發布文件
2、更改防火墻設置(虛擬機)
systemctl start firewalld.service firewall-cmd --permanent --add-port=8080/tcp 將8080通道打開 firewall-cmd --reload systemctl restart httpdnetstat -antlp 查看端口8080是否打開3、訪問8080端口,修改訪問地址
http://172.25.254.100:8080
(2)Apache的默認發布文件進行修改
1、 在/var/www/html下新建立一個westos.html文件,內容如下
2、在配置文件下更改默認發布目錄
3、重啟httpd服務
完成默認發布地址的更改
(3)默認發布目錄更改
新建的默認發布目錄不在/var/www/下,一定要給予授權
1、建立目錄
2、vim /etc/httpd/conf/httpd.conf 進入配置文件,修改默認發布地址并授權
3、 重啟httpd服務
systemctl restart httpd.service發現修改了在/var/www/westos/html/index.html文件
完成默認發布目錄的修改
三 、Apache的訪問控制
(1) 實驗環境
1、創建文件
mkdir /var/www/html/westos vim /var/www/html/westos/index.html2、輸入以下內容
4、效果
(2)創建網頁訪問黑名單
1、 進入配置文件
vim /etc/httpd/conf/httpd.conf2、 創建黑白名單
任意位置設置即可
先后順序為先允許白名單,再允許黑名單(故ip40的地址不能訪問)
3. 重啟httpd服務
4、結果為除了ip為172.25.254.40的地址不能訪問,其他都能訪問
172.25.42.100主機能正常訪問
172.25.42.2不能訪問
(3)創建ip黑名單
基本同上白名單一樣,配置內容改為如下即可
<Directory "/var/www/html/westos">Order Allow,DenyAllow from AllDeny from 192.168.0.10 </Directory>(4)創建用戶認證
1、 創建認證用戶
在/etc/httpd目錄下,生成用戶認證文件apacheauth,這里用戶認證文件中包含admin、lee兩個用戶的認證信息
注意-cm是創建新用戶的意思,如果重復-cm則會覆蓋原來的用戶。因此存在一個用戶了用-m添加另一個用戶即可
2、 進入文件進行配置,創建用戶認證
3、 重啟httpd服務
再次訪問地址時會出現如下界面,需要輸入密碼
4、 注意如果有兩個以上的用戶,則配置文件改為如下
四、單主機發布多個網頁 (虛擬機)
我們在www.baidu.com的主頁面中可以點擊進入不同的網站,其本質是在訪問百度的web服務器時通過不同的域名進入了不同的網站,這一功能可以通過 Apache虛擬主機來實現。
Apache虛擬主機的作用就是讓一個apache為多個域名服務,在訪問不同的域名的時候跳轉到不同的網頁。
具體操作如下:
1、 在/var/www的虛擬主機vhost下分別建立三個網頁,分別如下所示
[root@ansible ~] mkdir /var/www/vhost/{java,linux,python} -p [root@ansible ~] echo java‘page > /var/www/vhost/java/index.html [root@ansible ~] echo pyhon‘page > /var/www/vhost/python/index.html [root@ansible ~] echo linux‘page > /var/www/vhost/linux/index.html2、 進入子配置文件,建立虛擬主機
[root@westoslinux www] cd /etc/httpd/conf.d [root@westoslinux conf.d] vim vhost.conf/// <VirtualHost _default_:80>DocumentRoot /var/www/htmlCustomLog logs/default.log combined </VirtualHost><VirtualHost *:80>ServerName linux.westos.orgDocumentRoot /var/www/vhost/linuxCustomLog logs/linux.log combined </VirtualHost><VirtualHost *:80>ServerName java.westos.orgDocumentRoot /var/www/vhost/javaCustomLog logs/java.log combined </VirtualHost><VirtualHost *:80>ServerName python.westos.orgDocumentRoot /var/www/vhost/pythonCustomLog logs/python.log combined </VirtualHost>3、重啟httpd服務
systemctl restart httpd.service4、 真機做地址解析
vim /etc/hosts
5、進入瀏覽器訪問
五、apache支持的語言格式
(1)創建php格式
PHP 是一種 HTML 嵌入式的腳本語言。php文件以.php結尾。它的很多語法來自 C,Java 和 Perl,并具有幾個 PHP 獨有的特點。該語言的主要目標是讓 Web 開發人員快速地書寫動態生成的網頁
注意php里面內容一定嚴格按照格式要求對齊
1、創建文件
2、結果發現空白
因為這個需要php軟件提供支持,所以需要下載php服務軟件。
3、安裝php服務
4、結果
發現apache服務里面有了php的服務配置文件,apache可以結合php一起服務
在瀏覽器所在真實主機中再次訪問該index.php文件,出現了php測試頁面,index.php文件中的代碼成功執行,此時Apache支持php語言
(2)創建cig格式(cgi通用網關接口)
我們知道,cgi通用網關接口中主要使用的是perl語言。其實CGI其實是一個接口規范或協議,按照CGI接口規范開發的程序都可以叫做CGI程序。幾乎所有的語言都可以通過實現CGI或者fastcgi協議編寫一個web應用 。如C、Java、PHP、Perl、Asp、.Net
1、創建新的位置,生成配置文件
mkdir /var/www/html/cgidir vim /var/www/html/cgidir/index.cgi2、要讓里面的cgi里面的東西執行則需要在http的子文件進行配置
vim /etc/httpd/conf.d/vhost.conf
3、給執行權限,并重啟httpd
4、 結果如下
(3)創建wsgi文件(支持python語言)
wsgi與cgi的功能類似,其主要使用的是python語言。wsgi指定了web服務器和Python web應用或web框架之間的標準接口,以提高web應用在一系列web服務器間的移植性。
1、 創建wsgi目錄及其下屬文件
2、 為了能夠執行內容,需要下載python文件,,重啟服務
dnf install python2.x86_64 systemctl restart httpd.service3、 python執行要求高,在子配置文件里面設定引導位置文件
4、 重啟httpd服務即可
六、網站加密認證(用https訪問)
通常我們在訪問瀏覽器如www.taobao.com時,頁面會自動跳轉以https方式進行訪問,https服務相比于http多了加密功能,其服務頁面基本都具有登錄入口。一般來說,用戶用瀏覽器訪問服務器時,會在自己的客戶主機中輸入用戶名和密碼,輸入完成后通過網絡傳輸給服務器進行驗證。為了保證用戶名和密碼的安全性,在傳輸前瀏覽器會對用戶名和密碼等傳輸數據使用一些技術手段進行加密,同時為了保證傳輸數據的不可偽造性,還會生成相應的證書;當服務器接收到客戶主機傳輸來的數據后會先對用戶證書進行校驗,校驗通過后使用服務器內部存儲的私鑰對用戶的加密數據進行解密,進行用戶驗證
(1)認證的意義
瀏覽器會集成鎖和證書,對用戶的賬戶和密碼等信息加密上鎖,廠商會用證書校驗鎖是否為自己的鎖,然后對鎖進行解密。
(2)安裝認證
1、下載加密插件(下載后系統支持加密,但是還未經過認證)
dnf install mod_ssl -y2、 http文件里面查看證書的設置地址
cd /etc/httpd/conf.d/ls在http的配置文件里面找到了ssl認證加密模塊
3、 開啟火墻等服務
4、 訪問https://172.25.254.100效果如下
瀏覽器警告該網頁證書未通過CA機構驗證,接受風險繼續訪問,查看該網頁默認證書的詳細信息,可以看到證書中多處信息未知
5、 生成證書和文件
我們需要通過以下命令重新生成密鑰和證書:發送請求,新建密鑰文件并使用rsa對其進行加密,輸出密鑰文件到/etc/httpd/westos.org.key;生成證書文件,其格式為x509,證書有效期為365天,輸出證書文件到/etc/httpd/westos.org.crt
6、查看生成的證書和鑰匙
7、在http服務中重新讀取證書和服務,并重啟http
vim /etc/httpd/conf.d/ssl.conf
8、刪掉舊證書
在瀏覽器所在真實主機中再次訪問https://172.25.254.133,查看該網頁證書的詳細信息,可以看到該網頁證書已更新成我們所生成的證書,證書詳細信息完善,只要將該證書發送給CA機構進行驗證,驗證后證書合法,網頁就不會出現安全警告
證書認證完成
(3)對用戶訪問信息強制加密
1、 建立素材
mkdir /var/www/login vim /var/www/login/index.html2、 做虛擬主機導向,再重啟http
vim /etc/httpd/conf.d/vhosts.conf systemctl restart httpd
結果為輸入login.westos.org地址也會強制走加密地址訪問
七、squid 正向代理
實驗環境:
單網卡主機設定ip不能上網
雙網卡主機設定ip1可以連接單網卡主機,設定ip2可以上網
實驗效果
讓單網卡主機不能上網但瀏覽器可以訪問互聯網頁
1、讓真實主機變為路由器(先連wift)
2、 對雙卡主機設置網關,使其能上網
vim /etc/sysconfig/network-scripts/ifcfg-ens3 nmclic connection reload nmclic connection up System\ens32、 對真機檢驗
ping主機ip和ping百度都可以,真機可以上網
3、對單網卡主機進行配置
4、 檢驗:ping主機ip可以ping通
5、 單網卡主機下載firefox
此時firefox不能連接百度,因為沒有聯網
6、 雙網卡主機中安裝代理軟件
7、重啟系統,開啟squid服務
在單網卡主機中對瀏覽器進行更改
實驗結果:單網卡主機ping不了百度,但是可以上網
八、squid反向代理
企業反向設置的代理,加速客戶訪問速度(cdw加速)
1、 在雙網卡主機中(安裝過squid代理的虛擬機中)
vim /etc/squid/squid.conf2、雙網卡主機(代理服務器)重啟squid和火墻等服務
systemctl restart squid firewall-cmd --permanent --add-sevice=http firewall-cmd -reload3、 單網卡主機(總服務器)
發布頁面,關閉selinux,設置防火墻永久允許http,重啟防火墻,開啟http服務
4、訪問代理服務器時,顯示總代理(單網卡的虛擬機的發布信息)
總結
以上是生活随笔為你收集整理的【linux进阶4】apache的服务使用(图文巨详细解释apache的正向和反向代理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《阳光下》 ——【传递正反馈】
- 下一篇: vant上传图片时压缩图片