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
修改文件夹权限
##修改前 <Directory /var/www> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ##修改后 <Directory /var/www> Options Indexes FollowSymLinks AllowOverride ALL Require all granted </Directory>
结果如下图所示
反向代理配置
修改代理配置文件000-default.conf
在
CustomLog ${APACHE_LOG_DIR}/access.log combined
这一行下面添加如下配置文件<Proxy *> Order deny,allow Allow from all </Proxy> 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)
反向代理的具体情况需要根据后端接口和前端请求进行配置,基本格式如下所示
#后端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文件并覆盖解压后生成的文件夹。