一. 修改apache2原80端口為90端口
1. 修改/etc/apache2/ports.conf, 將端口80改為90,443,改為444
2. 修改/etc/apache2/sites-enabled/000-default, 將<virtualHost *:80>修改為90
3. 重啟 service apache2 restart
二. 如果想訪問多個虛擬主機,比如訪問127.0.0.1:90和127.0.0.1:9001返回不同的內容
1. 在/etc/apache2/ports.conf中監聽多個端口


2. 在/etc/apache2/sites-available中新建一個文件,例如test1.conf

運行命令a2ensite test1.conf ,使新建的配置文件生效
修改/etc/apache2/site-available的000-default.conf文件的DocumentRoot如下

3. 修改/etc/apache2/apache2.conf,注釋掉Require這行,或者把denied改為granted

其實這一步不要也行,因為在下面還有一個默認的目錄文件配置,已經賦予相應權限

4. 在/var/www/下新建目錄html1,html2. 並在相應目錄下新建index.html文件
然后重啟apache,訪問127.0.0.1:90和127.0.0.1:9001即可返回/var/www/html1,html2目錄下的index.html內容
三. 端口轉發
1. 首先配置mod_proxy模塊
將/etc/apache2/mods-available中的proxy_http.load, proxy.load, proxy.conf, proxy_connect.load 軟鏈接到/etc/apache2/mod2-enabled
2. 在/etc/apache2/site-enabled中建立一個文件,例如manage.conf
<VirtualHost *:8081>
ServerName 127.0.0.1
ProxyPass "/" "ajp://127.0.0.1:8009/"
ProxyPassReverse / ajp://127.0.0.1:8009/
</VirtualHost>
這樣訪問本機的8081端口時,即可轉發到tomcat中配置的ajp通道的8009端口
普通的http協議轉發,比如我的阿里雲上的tomcat,用80轉發8088端口
<VirtualHost *:80>
ServerName 127.0.0.1
ProxyPass "/" "http://127.0.0.1:8088/"
ProxyPassReverse / http://127.0.0.1:8088/
</VirtualHost>
四. 配置https訪問
1. 安裝openssl apt-get install openssl
2. 開啟SSL模塊 a2enmod ssl
3. 創建一個自簽名憑證
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
4. 編輯/etc/apache2/sites-availiable/default-ssl.conf
SSLEngin on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
5. 啟用Apache缺省的SSL虛擬主機 a2ensite default-ssl
上面命令相當於ln -s /etc/apache2/sites-avaliable/default-ssl /etc/apache2/site-enabled/default-ssl
6. 重啟apache2 即可
service apache2 restart
然后訪問https://127.0.0.1即可,由於是自簽名認證,網頁會顯示不安全提示,如果希望不提示該信息,那么可以導入證書(/etc/apache2/ssl/apache.crt)到受信任的根證書頒發機構。
如果想訪問http時強制轉為https訪問
1. 在/etc/apache2/site-avaliable/000-default.conf中<virtualHost *:80>代碼塊中任意地方添加
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
2. 啟動rewrite mod
a2enmod rewrite
3. 重啟apache
service apache2 restart
此時 訪問http://127.0.0.1 即可自動跳轉到https訪問
參考:https://blog.csdn.net/positlive/article/details/54972990