为了让自己的spring boot项目能被域名直接访问,而不是IP:端口号的形式访问,需要用到反向代理,简单来讲就是把一个程序运行的地址映射到域名上,实现直接用域名访问。网上很多教程都是针对nignx的,而我用的是apache,也不想折腾把apache换成nignx,找了很久才找到一个可以用的,这里记录一下,方便下次使用。
1.开启Apache的代理模块
在确保Apache安装好之后,通过a2enmod proxy proxy_balancer proxy_http
开启Apache的代理模块。
我用的是Ubuntu的Apache和centos下的Apache目录结构似乎有点不一样。
2.修改配置文件
切换到 /etc/apache2/sites-enabled
目录下,打开需要修改网站对应的配置
没有的话就新建一个对应的配置文件,文件的名字是二级域名的前缀.conf,比如我的域名是,
那么对应的网站是,这个好像也只是一个命名的习惯,不一样也没多大问题,这样主要是方便管理。
<VirtualHost *:80>
ServerName #这里填代理服务器的IP或域名
ProxyRequests off #off表示开启反向代理 on表示开启正向代理
ProxyPass / http://localhost:8080/ #被代理的网站,中间的那个/千万别少了,少了的话重启报错
ProxyPassReverse / http://localhost:8080/ #被代理的网站
# RewriteEngine on
# RewriteCond %{HTTPS} !=on
# RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
ErrorLog ${APACHE_LOG_DIR}/
CustomLog ${APACHE_LOG_DIR}/ combined
</VirtualHost>
上面的配置是将本地的8080端口运行的程序映射到这个域名上,这就达到了我的目的,服务器上运行的spring boot项目,能通过域名直接在公网访问。
3.重启apache生效配置
通过service apache2 restart
重启Apache,让配置文件生效。