默認(rèn)配置目錄
環(huán)境名稱 | 路徑 |
---|---|
配置目錄 | /etc/apache2 |
網(wǎng)站目錄 | /var/www/html |
卸載和安裝apache2
sudo apt --purge remove apache2
sudo apt --purge remove apache2-common
sudo apt --purge remove apache2-utils
sudo rm -rf /etc/apache2
sudo rm -rf /etc/init.d/apache2
# /var/www下文件隨意
sudo apt install apache2
配置防火墻
在測試Apache之前构回,我們需要修改我們的防火墻以允許外部訪問默認(rèn)的Web端口踩身。即配置一個UFW防火墻來限制對服務(wù)器的訪問妻怎。
列出ufw
程序配置文件:
sudo ufw app list
通常至少會顯示三個項目:
- Apache :此配置文件僅打開端口80(正常,未加密的Web流量)
- Apache Full :此配置文件打開端口80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
- Apache Secure :此配置文件僅打開端口443(TLS / SSL加密流量)
下面選擇允許Apache Full配置文件的傳入流量:
sudo ufw allow 'Apache Full'
查看目前apache2的狀態(tài)
sudo service apache2 status
啟動、重啟赢乓、停止服務(wù)
sudo /etc/init.d/apache2 start
# sudo service apache2 start
sudo /etc/init.d/apache2 restart
# sudo service apache2 restart
sudo /etc/init.d/apache2 stop
# sudo service apache2 stop
# 重載:apache可以重新加載而不會丟棄連接
sudo service apache2 reload
配置
/etc/apache2
為配置目錄
/etc/apache2/apache2.conf
主配置文件忧侧。
/etc/apache2/ports.conf
指定Apache將監(jiān)聽的端口。
/etc/apache2/sites-available/
可以存儲每個站點(diǎn)“虛擬主機(jī)”的目錄牌芋。 Apache不會使用此目錄中找到的配置文件蚓炬,除非它們符號鏈接(ln -s)到sites-enabled目錄。 通常躺屁,所有服務(wù)器塊配置都在此目錄中完成试吁,然后通過使用a2ensite
命令鏈接到另一個目錄來啟用。
/etc/apache2/conf-available/
使用a2enconf
與a2disconf
啟用與禁用楼咳。
/etc/apache2/mods-available/
使用a2enmod
和a2dismod
命令啟用和禁用模塊熄捍。
``
修改端口:
sudo vim /etc/apache2/ports.conf
# 將`Listen 80` 改為 `Listen 9090`
sudo vim /etc/apache2/sites-enabled/000-default.conf
# 修改為` <VirtualHost *:9090> `
同時需要將服務(wù)器的出站與入站規(guī)則的允許端口范圍應(yīng)包含9090在內(nèi).
但是,只更改上面兩個文件只能實現(xiàn)<域名:9090>訪問主頁母怜, 默認(rèn)域名似乎還是80端口余耽。
http的默認(rèn)標(biāo)準(zhǔn)端口是80
而更安全的https的標(biāo)準(zhǔn)端口是443
下面給Apache安裝證書以實現(xiàn)https的訪問:
-
下載SSL證書,解壓后會得到三個文件:
-
1_root_bundle.crt
證書文件 -
2_www.domain.com.crt
證書文件 -
3_www.domain.com.key
私鑰文件
-
-
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf
將available文件夾下conf文件軟連接到enabled路徑下
-
修改這個ssl.conf文件以下內(nèi)容:
sudo vim /etc/apache2/sites-available/default-ssl.conf <VirtualHost 0.0.0.0:443> DocumentRoot "/var/www/html" #填寫證書名稱 ServerName www.domain.com #啟用 SSL 功能 SSLEngine on #證書文件的路徑 SSLCertificateFile /xxx/2_www.domain.com.crt #私鑰文件的路徑 SSLCertificateKeyFile /xxx/3_www.domain.com.key #證書鏈文件的路徑 SSLCertificateChainFile /xxx/1_root_bundle.crt </VirtualHost>
-
重啟
sudo a2enmod ssl #加載SSL sudo /etc/init.d/apache2 restart
-
此時已經(jīng)可以通過https訪問了苹熏,但是并不是域名默認(rèn)的訪問方式碟贾,也就是說直接輸入域名依舊會使通過http訪問.
強(qiáng)制使用https的方式:sudo vim /etc/apache2/sites-enabled/000-default.conf RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
以及
sudo vim etc/apache2/apache2.conf AllowOverride All
上面實際上就是實現(xiàn)了對http:80的重定向https:443 (默認(rèn))
保存后重啟:sudo a2enmod rewrite sudo /etc/init.d/apache2 restart