lLinux學習筆記之apache及論壇的發佈

    Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
    Apache HTTP服務器是一個模塊化的服務器,源於NCSAhttpd服務器,經過多次修改,成爲世界使用排名第一的Web服務器軟件。一: apache的基礎信息

**主配置目錄:/etc/httpd/conf

主配置文件:/etc/httpd/conf/httpd.conf

子配置目錄:/etc/httpd/conf.d

子配置文件:/etc/httpd/conf.d/*.conf

以上這些配置文件的名字可以通過"rpm -qc httpd"查看

默認偵聽端口:80

默認發佈頁:/var/www/html/index.html

默認發佈目錄:/var/www/html

默認安全上下文:httpd_sys_content_t

程序開啓默認用戶:apache**

二:apache的配置
1,安裝及設置開機自啓動
yum install -y httpd 安裝
systemctl start hpptd 啓動
systemctl enable httpd 設置開機自動啓動
2,添加防火牆信任
1)命令方式
firewall-cmd --permanet --add-service=http
firewall-cmd --permanet --add-service=https
firewall-cmd --reload 重新加載,使配置生效
2)圖形方式
輸入firewall-config命令,進入防火牆配置的圖形化界面,進行配置
配置過程:Configuration選擇爲permanent;在Zones的區域選擇public;在Services的區域選擇http,https;Options選擇Reload Firewalld。
lLinux學習筆記之apache及論壇的發佈
用firewall-cmd --list-all查看是否添加成功
lLinux學習筆記之apache及論壇的發佈
3,httpd的幫助手冊
httpd的幫助手冊在下載服務時並不會自動下載,須手動安裝,並只能在瀏覽器中查看
輸入yum install httpd-manual -y命令,下載完成後重啓httpd服務,在瀏覽器中輸入IP/manual即可查看
lLinux學習筆記之apache及論壇的發佈
若想用中文方式查看,選擇zh-cn即可
4,httpd服務的默認端口及修改
httpd服務的默認偵聽端口是80。
輸入netstat -antulpe | grep httpd命令查看httpd的偵聽端口。
lLinux學習筆記之apache及論壇的發佈
編輯etc/httpd/conf/httpd.conf配置文件中第42行,將80改爲8080,重啓服務後修改生效
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
但是此時在瀏覽器中輸入:IP:8080是看不到默認發佈頁內容的。這是因爲防火牆允許通過的httpd服務的端口是
80。 此時,就需要對防火牆進行配置
firwall-cmd --permanet --add-port=8080/tcp 添加8080端口
firewall-cmd --reload 重新加載防火牆配置
此時在瀏覽器中輸入:IP:8080是可以看到默認發佈頁的內容。
lLinux學習筆記之apache及論壇的發佈
重複上面的編輯步驟,將偵聽端口改爲6666,此時發現,httpd服務重啓失敗。這是因爲防火牆添加了6666端口,但是selinux並不允許httpd服務的6666端口通過。
輸入semanage port -a -t http_port_t -p tcp 6666命令,王selinux中添加httpd的6666端口
lLinux學習筆記之apache及論壇的發佈
測試,在瀏覽器中輸入ip:6666
lLinux學習筆記之apache及論壇的發佈
5,httpd服務的默認發佈文件及目錄的修改
1)httpd服務的默認發佈文件修改

httpd服務的默認發佈頁爲"/var/www/html/index.html",剛開始這個文件是不存在的。
例如在目錄"/var/www/html/"下的"index.html"寫入下圖所示內容。在瀏覽器中輸入IP就可以看見該內容。
lLinux學習筆記之apache及論壇的發佈(其中<h1><h1>爲字體大小)
lLinux學習筆記之apache及論壇的發佈
在文件"/etc/httpd/conf/httpd.conf"中的第164行,可以更改默認發佈頁,如下圖所示,將默認發佈頁改
爲"xin.html"(有先後順序),如果"xin.html"不存在,就訪問"index.html"。之後重啓服務
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
vim /var/www/html/we.html 在文件中編輯內容
lLinux學習筆記之apache及論壇的發佈
完成後重啓服務。在瀏覽器中輸入IP測試
lLinux學習筆記之apache及論壇的發佈
2)httpd默認發佈目錄的修改
httpd服務的默認發佈目錄是"/var/www/html"。
修改httpd服務的默認發佈目錄
1)"mkdir /xin/www/html -p"。建立一個目錄作爲默認發佈目錄。
lLinux學習筆記之apache及論壇的發佈
2)"vim /xin/www/html/xin.html"。在文件"xin.html"中寫入下圖所示內容
lLinux學習筆記之apache及論壇的發佈
3)"vim /etc/httpd/conf/httpd.conf"。在配置文件中編輯如下內容,將119行註釋,如下圖第120行至第123行所示:
lLinux學習筆記之apache及論壇的發佈
4) 輸入semanage fcontext -a -t httpd_sys_content_t '/xin(/.*)?'命令修改"/xin"目錄中所有內容的安全上下文,並
通過"restorecon -RvvF /xin"刷新生效。(也可以設置selinux爲警告或關閉模式)
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
配置完成後重啓服務,在瀏覽器當中輸入IP,就可以看見(4)中編輯的文件內容。
lLinux學習筆記之apache及論壇的發佈
三:apache的虛擬主機及配置
1)"mkdir /var/www/xin.com/news/html 建立虛擬發佈目錄
2)vim /var/www/xin.com/news/html/index.html 編輯news.xin.com"的發佈頁
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
3)進入/etc/httpd/conf.d這個目錄,輸入vim default.conf命令,編輯默認發佈頁的文件
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
輸入vim news.conf編輯"news.xin.com"的文件
lLinux學習筆記之apache及論壇的發佈
重啓服務,在測試主機上添加解析,並進行測試
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
在瀏覽器中測試
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
四,apache內部的訪問控制
基於ip的訪問控制
1,如果有apache服務的主機,可以在/etc/httpd/conf.d目錄下的文件default.conf中進行編輯。編輯內容如下,重啓服務後生效。
編輯的內容有兩種:
方法1:通過ip控制訪問
1)lLinux學習筆記之apache及論壇的發佈
"Order Allow,Deny"表示開啓允許或者禁止訪問功能,且哪個在前哪個先生效,此處"Allow"先生效。"Allow from all"表示允許所有用戶訪問。"Deny from 172.25.254.183"表示禁止IP爲"172.25.254.183"的用戶訪問。根據上述前後順序,則IP 爲"172.25.254.183"的用戶不可以訪問。news.conf,music.conf文件的訪問控制同理。
2)lLinux學習筆記之apache及論壇的發佈
"Order Deny,Allow",此處"Deny"先生效。"Deny from all"表示禁止所有用戶訪問。"Allow from 172.25.254.183"表示允許IP爲"172.25.254.183"的用戶訪問。根據上述前後順序,則只有IP 爲"172.25.254.183"的用戶可以訪問。
方法二:通過認證用戶名密碼進行控制
輸入vim /etc/httpd/conf.d/default.conf 命令,進入編輯內容如下:
lLinux學習筆記之apache及論壇的發佈
news文件的訪問控制同理
如果沒有apache服務的主機,
通過編輯配置文件"etc/httpd/conf/httpd.conf",可以設置禁止或允許一些用戶訪問。在120行-124行編輯,編輯內容同上
編輯文件完成後,重啓服務
2,測試
對方法1的1)進行測試:在是172.25.254.183主機上訪問(172.25.254.183不能訪問)
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
連接成功,但是並不能看到文件中的內容
對方法2的2)進行測試:在不是172.25.254.183主機上訪問(只有172.25.254.183可以訪問)
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
同樣,連接成功,但是並不能看到文件中的內容
對方法二測試:
添加用戶名並設置密碼
lLinux學習筆記之apache及論壇的發佈
在瀏覽器中輸入ip
lLinux學習筆記之apache及論壇的發佈
顯示輸入用戶名和密碼,輸入正確的用戶名和密碼之後,可以看到文件中的內容
五:apache支持的語言
1.html語言(一般以".html"結尾),apache默認支持該語言。
2.php語言(一般以".php結尾")。
要使apache支持php語言,步驟如下:
1)首先安裝php
lLinux學習筆記之apache及論壇的發佈
2)"vim /var/www/html/index.php",編寫index.php文件
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
3)重啓服務,並在瀏覽器輸入IP/index.php進行測試
lLinux學習筆記之apache及論壇的發佈
3.cgi語言(通用網管接口,處理表單,比如說註冊時的表單)(一般以".cgi"結尾),其實是一種perl語言,apache也是默認支持此語言的。
在默認發佈目錄(/var/www/cgi-bin)下:
1)"vim index.cgi",編寫index.cgi腳本文件(該腳本文件的來源:apache的幫助手冊),該文件的名字任意給定。
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
2)"chmod +x index.cgi",給改腳本文件添加可執行的權限
lLinux學習筆記之apache及論壇的發佈

3)重啓服務,輸入IP/cgi-bin/index.cgi進行測試
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
在非默認發佈目錄下:
(1)"mkdir /var/www/html/cgi -p",建立/var/www/html/cgi目錄
lLinux學習筆記之apache及論壇的發佈
(2)在"/var/www/html/cgi"目錄裏
lLinux學習筆記之apache及論壇的發佈
"vim index.cgi",編輯cgi的腳本文件

(3)"chmod +x index.cgi",給腳本文件增加可執行的權限
lLinux學習筆記之apache及論壇的發佈
(4)"semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi(/.*)?",修改/var/www/html/cgi目錄本身,及其內部內容的安全上下文
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
此時重啓服務進行測試,發現,顯示出來的不是該腳本文件運行出來的結果,而是該腳本文件本身,這是因爲,網頁不認識這些腳本文件,所以需要編輯配置文件,
5)編輯配置文件:
如果配置了apache的虛擬主機
在"/etc/httpd/conf.d"目錄下的default.conf文件的中,編輯如下內容
lLinux學習筆記之apache及論壇的發佈
如果沒有apache服務的虛擬主機,在etc/httpd/conf/httpd.conf文件中進行編輯,在120-123行進行編輯,編輯內容如下
lLinux學習筆記之apache及論壇的發佈
6)編輯完成,重啓服務後在瀏覽器中輸入ip/cgi/index.cgi進行測試
注意:如果發佈文件不在默認發佈目錄中,需要修改安全上下文或者將xelinux設置爲警告模式或關閉
4.python語言(python腳本語言需要網絡服務器網關接口即WSGI)
1)"yum search wsgi","yum install mod_wsgi"。安裝支持wsgi的軟件
lLinux學習筆記之apache及論壇的發佈
2)"vim /var/www/cgi-bin/webapp.wsgi"。編輯腳本文件
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
3)"chmod +x /webapp.wsgi"。給該腳本文件增加可執行的權限,
lLinux學習筆記之apache及論壇的發佈
因爲該目錄不是python語言的默認發佈目錄,所以要編輯配置文件,添加信任,並修改安全上下文或將selinux設置爲警告模式或者關閉selinux。

4)在"/etc/httpd/conf.d"目錄下編輯"webapp.conf"文件
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
重啓服務,在客戶主機上編寫本地解析文件,在瀏覽器,輸入webapp.xin.com進行測試。
lLinux學習筆記之apache及論壇的發佈
六,apache的加密訪問(https)
https是http的安全版,常用於密碼登陸等頁面,實現客戶端和服務端之間的數據的加密傳輸。https的配置步驟如下所示:
1)"yum install mod_ssl.x86_64 -y"。下載加密模塊ssl。
lLinux學習筆記之apache及論壇的發佈
2)"yum install crypto-utils.x86_64 -y"。安裝認證證書和key的生成軟件。
lLinux學習筆記之apache及論壇的發佈
3)設置防火牆策略允許https(前面的實驗,已經做過這一步),https的默認端口爲443(通過/etc/httpd/conf.d/ssl.conf查看)
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
4)輸入命令genkey www.xin.com,爲www.xin.com生成證書和key,其生成爲圖形界面,步驟如下圖所示。
lLinux學習筆記之apache及論壇的發佈
進入界面,提示證書和key的存放位置,點擊next。
lLinux學習筆記之apache及論壇的發佈
進入選擇加密長度界面。選定後點擊next。
lLinux學習筆記之apache及論壇的發佈
進入文件檢查界面
lLinux學習筆記之apache及論壇的發佈
完成後進入key生成界面,需要在另外一個shell上隨便輸入一些東西,可加速key生成
lLinux學習筆記之apache及論壇的發佈
完成後進入如下界面,點擊no,因爲yes是需要錢的,是官方認證,如果是企業需要,則點擊yes
lLinux學習筆記之apache及論壇的發佈
完成後進入如下界面,直接點擊next
lLinux學習筆記之apache及論壇的發佈
完成後進入如下界面,輸入認證證書的信息。完成後點擊next。
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
5)"vim /etc/httpd/conf.d/ssl.conf"。編輯配置文件,配置內容如下,輸入生成的證書和key所在的文件位置。如圖第100行和第107行所示:
lLinux學習筆記之apache及論壇的發佈
6)加密頁的配置已經完成,重啓服務後生效。在瀏覽器中輸入https:172.25.254.183測試,
lLinux學習筆記之apache及論壇的發佈
點擊Confirm Security Exception,查看網頁信息
點擊View查看證書信息
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
點擊鎖的樣式,查看證書信息
查看該認證證書,和之前設置證書時輸入的一樣
lLinux學習筆記之apache及論壇的發佈
七,設定https虛擬主機並設定網頁重寫
上述配置完成後在訪問網頁時需要輸入"https",顯然這是不合理的,需要在訪問域名時直接跳轉至https頁面。還需要做如下配置:
1)"mkdir /var/www/xin.com/login/html -p"。建立一個虛擬發佈目錄。
lLinux學習筆記之apache及論壇的發佈
2)"vim /var/www/xin.com/login/html/index.html"。配置虛擬發佈頁,內容如下圖所示。
lLinux學習筆記之apache及論壇的發佈
3)"vim /etc/httpd/conf.d/login.conf"。配置虛擬發佈頁的文件。內容如下,如圖所示:
lLinux學習筆記之apache及論壇的發佈
其中第2行,第6行和第7行摘自(/etc/httpd/conf.d/ssl.conf文件)
第14,15行摘自apache的幫助手冊
lLinux學習筆記之apache及論壇的發佈
其中":443"表示將端口改爲443。"SSLEngine on"表示加密開啓,在後面輸入證書和key的位置。"RewriteEngine on"表示,重寫功能開啓。"RewriteRule ^(/.)$ https://%{HTTP_HOST}$1 [redirect=301]"表示重寫規則,"^(/.)$"是客戶端上輸入的字符,"%{HTTP_HOST}"表示客戶請求主機,"$1"表示在這裏代表"^(/.)$","redirect=301",表示重定向等級是永久重定向,如果是302表示臨時重定向。
4)重啓服務生效後,測試時,在客戶主機的"/etc/hosts"本地解析文件中加入"login.xin.com",在瀏覽器中輸入"login.xin.com"測試

可以看出,網頁自https://login.126.com 獲取認證證書後即可看到頁面內容。
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈
lLinux學習筆記之apache及論壇的發佈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章