以nextcloud(docker)、Rstudio为例的软件在安装后,通常会开放新的端口作为访问的入口,那么在访问时需要使用域名(或ip或localhost)加上端口的方式进行访问,这样是不太方便美观的。而且有时为了防止cc攻击,我们可能会将默认端口替换,为了不随意显示端口号,反向代理是有必要的。
下面是进行反向代理的配置环境:
- 腾讯云服务器
- apache2.4
- ubuntu20.04
这里我们默认你已经打开了除80、443以外的新的端口并进行监听。对于不知道如何使用apache2开启新的监听端口的朋友,可以查看相应的文章。
1.首先,开启apache2关于反向代理的相关模块的功能。
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests #打开相应模块后,可以重启apache2
sudo service apache2 restart
2.此时我们需要配置反向代理的文件,在目录/etc/apache2/sites-enabled中创建一个新的配置文件,比如我们要配置我们的博客网站的端口的反向代理,我们可以创建blog.conf。并在配置文件中输入下面的内容:
<VirtualHost *:需要反向代理的端口号>
ServerName XXX.XXX.XXX
##该端口处被反向代理的域名
#这里填代理服务器的IP或域名
ProxyRequests off
#off表示开启反向代理 on表示开启正向代理
ProxyPass / https://xxx.xxxx.xxxx:端口号/
#被代理的网站,中间的/不可以漏掉,否则重启报错
ProxyPassReverse / https://xxx.xxxx.xxxx:端口号/
#被代理的网站
#这里需要注意,被代理的网站需要根据你的实际情况(是否配置ssl),如果配置了ssl,则可以是https,否则请改为http
#RewriteEngine on
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
#这部分是关于要不要开启强制https重定向的部分,根据你的ssl配置情况和需求决定是否开启
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3.配置好后重启apache2服务
service apache2 restart
此时使用不加端口号的域名直接访问相应网址应该就正常了。