以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

此时使用不加端口号的域名直接访问相应网址应该就正常了。