Java tomcat apache2反向代理 web项目部署

Apache2

1 安装

sudo apt update
sudo apt install apache2

2 配置

默认安装目录 /etc/apache2/

主配置文件/etc/apache2/apache2.conf

反向代理配置文件/etc/apache2/sites-available/000-default.conf

前端部署文件放置文件夹 /var/www/

加载模块

修改主配置文件apache2.conf

添加五行LoadModule配置

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so

修改文件夹权限

##修改前

       Options Indexes FollowSymLinks
       AllowOverride None
       Require all granted

##修改后

       Options Indexes FollowSymLinks
       AllowOverride ALL
       Require all granted

结果如下图所示

Java tomcat apache2反向代理 web项目部署_第1张图片

反向代理配置

修改代理配置文件000-default.conf

CustomLog ${APACHE_LOG_DIR}/access.log combined这一行下面添加如下配置文件


	Order deny,allow
	Allow from all

ProxyPreserveHost On
ProxyRequests Off
ProxyPass "/api/imserver" "ws://127.0.0.1:8080/{webname}/api/imserver"
ProxyPass "/api" "http://127.0.0.1:8080/{webname}/api"
ProxyPassReverse "/api" "http://127.0.0.1:8080/{webname}/api"
ProxyPassReverseCookieDomain locahost localhost
ProxyPassReverseCookiePath "/{webname}" /

结果如下图所示(本次webname为demo,即部署到tomcat webapps文件夹的war包名为demo.war)

Java tomcat apache2反向代理 web项目部署_第2张图片

反向代理的具体情况需要根据后端接口和前端请求进行配置,基本格式如下所示

#后端controller
@Controller
@RequestMapping("/api/test")
public class TestController {
	@GetMapping(value = "hello-world")
   @ResponseBody
   public String helloWorld() {
       return "hello-world"
   }
}
#前端请求
this.axios.get("/api/test/hello-world").then(res=>{
   console.info(res.data)
}).catch(err=>{
	console.info(res)
})
#后端websocket server
@ServerEndpoint(value = "/api/imserver/{userName}/{token}",configurator = WebSocketSessionConfig.class)
@Component
public class WebSocketServer {
	//处理代码
}
#前端websocket
socket = new WebSocket("ws://"+window.location.host+"/api/imserver/username/token");

项目部署

在/var/www下部署前端项目,若前端项目为vue单页项目需在此目录下创建一个.htaccess文件,文件内容如下所示

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

另外将打包的index.html文件和 static文件夹放在文件夹/var/www/下,并为其设置访问权限

sudo chmod -R 755 /var/www/static
sudo chmod 755 /var/www/index.html

前端项目运行

启动apache2或者重新启动apache2可以让上述配置生效,网站项目的更新即/var/www文件夹下文件的更改无需重启apache2,网页刷新即可获取更新后的网站页面

#启动apache2
sudo /etc/init.d/apache2 start
#停止apache2
sudo /etc/init.d/apache2 stop
#重新启动apache2
sudo /etc/init.d/apache2 restart

Tomcat

安装

#下载tomcat
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz
#解压文件
tar -zxvf apache-tomcat-9.0.2.tar.gz
#移动解压后的文件夹到/usr/local
mv apache-tomcat-9.0.2 /usr/local/tomcat9
#到此即完成tomcat的安装

部署后端项目

1.将war包移动到tomcat文件夹下的webapps文件夹下,即/usr/local/tomcat9/webapps

2.启动tomcat

#第一种方式,此种方式为后台启动
cd /usr/local/tomcat9/bin
./startup.sh 
#第二种方式,此种方式为交互启动,可以获取web运行的打印信息
cd /usr/local/tomcat9/bin
./catalina.sh run

3.默认启动端口为8080,假设war包名字为demo.war,则访问web服务端口为 localhost:8080/demo/

4.启动后部署服务器项目无需重启tomcat,tomcat会自动监测webapps下的文件,当有新的war包或者war包更新,会重新运行该web服务,即自动解压war文件并覆盖解压后生成的文件夹。


你可能感兴趣的:(ubuntu,tomcat,java,前端,后端)