Apache服务器部署(2)
簽名CA證書
環境:server1:172.25.1.1??? 重置虛擬機 ? ? ? 掛載yum源?????????
[root@server1 ~]# yum install mod_ssl -y???????????????? //下載ssl模塊
[root@server1 ~]# yum install crypto-utils -y ??????????? //安裝加密軟件
[root@server1 ~]# genkey www.westos.com?????????? //對www.westos.com加密
https://mp.csdn.net/
這個過程一般比較慢,可以另外打開一個終端,并不斷按鍵或者拖動鼠標
//填寫證書內容
//點擊Next進行下一步,會出現下面的內容
其中,
output will be written to /etc/pki/tls/certs/www.westos.com.crt?????? ? ? //證書
output key written to /etc/pki/tls/private/www.westos.com.key????????? //密鑰
[root@server1 ~]# vim /etc/httpd/conf.d/ssl.conf?????????????????? //修改文件中的證書及密鑰
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
[root@server1 ~]# systemctl restart httpd
此時進行網頁瀏覽:
1、當密鑰生成錯誤時,進入目錄/etc/pki/tls/serts刪除證書,進入目錄cd /etc/pki/tls/private/刪除密鑰
2、若重新生成密鑰后還是不能下載證書則進行Edit–>Advanced–>View并刪除本機證書后即可下載。
網頁重寫
[root@server1 ~]# mkdir /var/www/virtual/westos.com/login -p
[root@server1 ~]# vim /var/www/virtual/westos.com/login/index.html?
[root@server1 ~]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# ls
autoindex.conf? README? ssl.conf? userdir.conf? welcome.conf
[root@server1 conf.d]# vim login.conf
<VirtualHost *:443>????????
??? ServerName login.westos.com????????????
??? DocumentRoot "/var/www/virtual/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>
<Directory "/var/www/virtual/westos.com/login/">
??? Require all granted
</Directory>
<VirtualHost *:80>
??? ServerName login.westos.com
??? RewriteEngine on
??? RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
由于用戶輸網址時不會刻意添加加密訪問字符‘https://’, 所以我們可以用代碼強制將用戶輸入站點自動跳轉到‘https://
??? RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
[root@server1 conf.d]# systemctl restart httpd
網頁進行訪問:
即使訪問時沒有添加https://但回車時還時會自動添加上
Apache支持PHP語言(已經支持了html)
[root@server1 conf]# pwd
/etc/httpd/conf
[root@server1 conf]# vim httpd.conf
[root@server1 conf]# vim /etc/httpd/conf/httpd.conf???????????????? //配置文件中添加默認發布目錄index.php
[root@server1 conf]# yum install php -y???????????? //安裝php
[root@server1 conf]# cd /var/www/html/
[root@server1 html]# mkdir cgi?????????????????
[root@server1 html]# cd cgi/
[root@server1 cgi]# vim index.cgi??????????????? //寫腳本
[root@server1 cgi]# chmod +x index.cgi ??????????? //給腳本加可執行權限
[root@server1 cgi]# ./index.cgi?????????????? //執行腳本
Content-type: text/html
Sun Mar 10 03:48:04 EDT 2019
[root@server1 cgi]# cd -
/var/www/html
[root@server1 html]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# ls
autoindex.conf? php.conf? ssl.conf????? welcome.conf
login.conf????? README??? userdir.conf
[root@server1 conf.d]# vim default.conf?????????????????????????
[root@server1 conf.d]# vim /etc/httpd/conf/httpd.conf
[root@server1 conf.d]# systemctl restart httpd
此時在網頁進行訪問:
論壇的搭建
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# yum install -y mariadb
[root@server1 ~]# yum install mariadb-server
[root@server1 ~]# systemctl start mariadb
下載論壇的安裝包至/var/www/html
[root@server1 westos]# cd /var/www/html/
[root@server1 html]# ls
cgi? Discuz_X3.2_SC_UTF8.zip? index.html? index.php
[root@server1 html]# unzip Discuz_X3.2_SC_UTF8.zip
-bash: unzip: command not found
[root@server1 html]# yum intall -y unzip
[root@server1 html]# unzip Discuz_X3.2_SC_UTF8.zip
[root@server1 html]# ls
[root@server1 html]# chmod 777 /var/www/html/upload/ -R??????????? //添加權限
[root@server1 html]# yum install -y php-mysql?????????????? //安裝php-mysl
[root@server1 html]# systemctl restart httpd
在瀏覽器中輸入http://172.25.1.1/upload/install/
點擊index.php
[root@server1 html]# mysql_secure_installation
[root@server1 html]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
????? SERVERS IN PRODUCTION USE!? PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.? If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y??????????????????????????? //設置root密碼,這里我設置的是redhat
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
?... Success!
//后面都輸入y
返回瀏覽器:
注意:填寫表格時:數據庫服務器為localhost 數據庫名為root? 數據庫用戶名為root? 數據庫密碼為redhat? 管理員密碼為admin其他部分不變
此時點擊admin.php
提交:
論壇搭建完成
?
正向代理及反向代理??
正向代理:
??????? 也就是在瀏覽器的網絡連接屬性框中,填寫上一個代理服務器的ip和端口,即可通過代理服務器中轉,去瀏覽網頁。有時候網站對單個 IP 某些操作進行了次數限制。它是一個位于客戶端和原始服務器之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端才能使用正向代理。
反向代理(Reverse Proxy):
??????? 是指以代理服務器來接受 Internet 上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給 Internet 上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。常用做網站服務器配置,可以提供從防火墻外部代理服務器到防火墻內部安全內容服務器的加密連接,隱藏后端真實服務器,更加安全。如 負載均衡 ,CDN 緩存都是反向代理。
http與https的區別
超文本傳輸協議HTTP協議被用于在Web瀏覽器和網站服務器之間傳遞信息。HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協議不適合傳輸一些敏感信息,比如信用卡號、密碼等。
為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS。為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密,實現http的安全數據傳輸??梢哉fhttps就是http的升級版
HTTPS和HTTP的區別主要為以下四點:
一、https協議需要到ca申請證書,一般免費證書很少,需要交費。
二、http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
三、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
四、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
apache與nginx的區別
nginx
- epoll 異步非阻塞
- nginx在開啟時,會生成一個master進程,然后,master進程會fork多個worker子進程,最后每個用戶的請求由worker的子線程處理。
- 可以配置nginx的upstream實現nginx的反向代理;nginx 本身就是一個反向代理服務器,而且可以作為非常優秀的郵件代理服務器。
- 支持7層負載均衡,可做為負載均衡器。
- 靜態文件、反向代理、前端緩存等處理方便;nginx 處理靜態文件好,靜態處理性能比 apache 高3倍以上
- 支持高并發連接,每秒最多的并發連接請求理論可以達到 50000 個
- nginx 配置簡潔,正則配置讓很多事情變得簡單,而且改完配置能使用 -t 測試配置有沒有問題,apache 配置復雜 ,重啟的時候發現配置出錯了,會很崩潰
- 用線程處理用戶請求,而線程是共享內存的,只需要開啟少量進程,多個線程就可以共享進程的內存,占用內存小,輕量級,采用 C 進行編寫,同樣的 web 服務,會占用更少的內存及資源;
- 一個進程死掉時,會影響到多個用戶的使用,穩定性差
- 即使運行數個月也不需要重新啟動,還能夠不間斷服務的情況下進行軟件版本的升級
- 社區活躍,各種高性能模塊出品迅速
apache
- apache 的 rewrite 比 nginx 強大,在 rewrite 頻繁的情況下,用 apache
- 組件比nginx多
- 一個連接對應一個進程
- 當用戶請求過多時,開啟的進程較多,占用內存大,每秒最多的并發連接請求最多不超過 3000 個
- 一個進程死掉時,不會影響其他的用戶;apache 超穩定
- apache 發展到現在,模塊超多,基本想到的都可以找到
- apache 更為成熟,少 bug ,nginx 的 bug 相對較多
- apache 在處理動態請求有優勢,nginx 在這方面是雞肋,一般動態請求要 apache 去做,nginx 適合靜態和反向。
- apache 仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社區
總結:
核心區別在于nginx是異步的,多連接可對應一個進程,而apache是一個連接對應一個進程,同步多進程。
總結
以上是生活随笔為你收集整理的Apache服务器部署(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache服务器部署(1)
- 下一篇: DNS高速缓存