一. 修改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