宝塔反向代理配置去掉端口

1 添加站点

2 添加反向代理

3 配置url和域名,缓存5分钟

堡垒云平台也可以添加

4 反向代理配置路径和内容

/www/server/panel/vhost/nginx/proxy/

server
{
    listen 80;
    server_name baota.xxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/baota.xxx.com;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    #清理缓存规则

    location ~ /purge(/.*) {
        proxy_cache_purge cache_one $host$1$is_args$args;
        #access_log  /www/wwwlogs/baota.xxx.com_purge_cache.log;
    }
	#引用反向代理规则,注释后配置的反向代理将无效
	include /www/server/panel/vhost/nginx/proxy/baota.xxx.com/*.conf;

	include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/baota.tangboxiang.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    access_log  /www/wwwlogs/baota.tangboxiang.com.log;
    error_log  /www/wwwlogs/baota.tangboxiang.com.error.log;
}
location /
{
    expires 12h;
    if ($request_uri ~* "(php|jsp|cgi|asp|aspx)")
    {
         expires 0;
    }
    proxy_pass http://127.0.0.1:8899;
    proxy_set_header Host baota.xxx.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    #持久化连接相关配置
    #proxy_connect_timeout 30s;
    #proxy_read_timeout 86400s;
    #proxy_send_timeout 30s;
    #proxy_http_version 1.1;
    #proxy_set_header Upgrade $http_upgrade;
    #proxy_set_header Connection "upgrade";
    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache


    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 5m;
}

 

<think>我们正在使用宝塔面板部署两个JavaWeb项目(WAR包)。根据引用资料,宝塔面板支持Tomcat环境,我们可以通过安装Tomcat并部署多个WAR包来实现。步骤大致如下:1.安装宝塔面板(如果尚未安装)2.在宝塔面板中安装Tomcat(注意:一个Tomcat实例默认可以部署多个应用,但也可以通过安装多个Tomcat实例来部署,这里我们使用一个Tomcat实例部署多个应用的方式)3.将两个WAR包上传到Tomcat的webapps目录下,Tomcat会自动解压并部署。4.配置端口(如果需要不同的端口,则需要多个Tomcat实例,但通常一个Tomcat使用一个端口,多个应用共享同一个端口,通过不同的上下文路径访问)但是,如果两个项目需要使用不同的端口(比如一个用8080,另一个用8081),那么我们就需要配置多个Tomcat实例。宝塔面板默认安装的Tomcat只能管理一个实例,因此我们需要手动配置第二个Tomcat实例。然而,根据引用[3]和[5],宝塔面板安装Tomcat后,我们可以通过复制Tomcat目录并修改配置来创建新的实例。但请注意,宝塔面板的Tomcat管理可能只支持一个实例(面板上只显示一个),所以第二个实例可能需要手动管理。因此,我们有两种方案:方案一:两个项目部署在同一个Tomcat下,使用同一个端口,通过不同的上下文路径访问(即不同的项目名)。方案二:部署两个Tomcat实例,每个项目一个实例,使用不同的端口。下面分别说明两种方案的步骤。方案一:同一个Tomcat部署两个项目1.在宝塔面板中安装Tomcat(例如Tomcat8,对应JDK1.8)。2.将第一个WAR包上传到`/www/server/tomcat/webapps/`目录下(这是宝塔默认的Tomcat的webapps目录)。3.将第二个WAR包也上传到同一个目录。4.Tomcat会自动解压并部署,访问方式为:http://服务器IP:端口/项目1名称和http://服务器IP:端口/项目2名称。注意:项目名称就是WAR包的文件名(去掉.war后缀)。如果项目需要特定的上下文路径,可以重命名WAR包为ROOT.war(这样访问路径就是根路径),但只能有一个ROOT项目。方案二:两个Tomcat实例(两个端口)1.在宝塔面板中安装第一个Tomcat(假设使用端口8080)。2.将第一个WAR包上传到第一个Tomcat的webapps目录(例如`/www/server/tomcat/webapps/`)。3.创建第二个Tomcat实例:a.复制第一个Tomcat的目录:`cp-r/www/server/tomcat/www/server/tomcat2`b.修改第二个Tomcat的配置文件,主要修改三个端口(避免与第一个Tomcat冲突):-进入`/www/server/tomcat2/conf`目录,编辑`server.xml`。-修改Shutdown端口(默认为8005,改为另一个,如8006)-修改HTTP/1.1连接器端口(默认为8080,改为8081或其他)-修改AJP端口(默认为8009,改为8010)c.修改第二个Tomcat的启动脚本中的环境变量(主要是CATALINA_HOME和CATALINA_BASE,指向新的目录):-可以复制Tomcat的启动脚本(在`/www/server/tomcat2/bin`目录下),但一般不需要修改,因为启动时会使用当前目录作为基础。d.创建启动脚本(可选,也可以使用现有的启动脚本)并启动。4.将第二个WAR包上传到第二个Tomcat的webapps目录(`/www/server/tomcat2/webapps/`)。5.启动第二个Tomcat实例:`/www/server/tomcat2/bin/startup.sh`6.在宝塔面板的安全组(防火墙)中放行第二个Tomcat的端口(8081)。方案二的问题在于,宝塔面板可能不会直接管理第二个Tomcat实例(启动、停止等操作需要在命令行进行)。我们可以将第二个Tomcat添加到宝塔面板的“守护进程”中,实现开机自启和状态监控。根据引用[5],宝塔面板创建数据库等操作很简单,但多Tomcat实例需要手动配置。考虑到简便性,如果两个项目可以共享同一个Tomcat(同一个端口),则推荐方案一。如果项目需要独立的环境(例如不同的JDK版本,或者需要隔离),则使用方案二。下面详细说明方案一(同一个Tomcat)的步骤,因为这是最常见且宝塔面板直接支持的:步骤1:安装宝塔面板(如果已安装跳过)根据引用[4]和[5],安装宝塔面板的命令(CentOS):```shyuminstall-ywget&&wget-Oinstall.shhttp://download.bt.cn/install/install_6.0.sh&&shinstall.sh```步骤2:安装Tomcat登录宝塔面板->软件商店->搜索“Tomcat”->选择版本(如Tomcat8)安装。同时会自动安装JDK(如果选择Tomcat8,则安装JDK1.8)。步骤3:上传WAR包在宝塔面板的文件管理器中,进入`/www/server/tomcat/webapps/`目录,上传两个WAR包。步骤4:重启Tomcat在宝塔面板的软件商店->已安装->Tomcat,点击重启。或者通过命令行重启:```sh/etc/init.d/tomcatrestart```步骤5:访问项目假设两个WAR包分别为project1.war和project2.war,则访问地址为:http://你的服务器IP:8080/project1/http://你的服务器IP:8080/project2/注意:端口号默认为8080,如果访问不了,请检查宝塔面板的防火墙(安全组)是否放行了8080端口。如果要将端口改为80,可以在Tomcat的配置文件中修改(server.xml中的Connectorport="8080"改为80),但通常80端口被Nginx占用,因此建议使用Nginx反向代理到Tomcat(宝塔面板可以很方便地设置反向代理)。设置反向代理(可选):1.在宝塔面板中创建一个网站(域名或IP访问),然后设置反向代理。2.目标URL填写:http://localhost:8080(如果Tomcat在本地运行)3.然后就可以通过80端口(或443端口,如果配置了SSL)访问项目。如果两个项目都需要通过80端口访问,那么可以使用Nginx的location路径来区分:```nginxserver{listen80;server_nameyour_domain.com;location/project1{proxy_passhttp://localhost:8080/project1;#其他代理设置}location/project2{proxy_passhttp://localhost:8080/project2;#其他代理设置}}```或者,通过两个不同的域名分别代理到两个项目。总结:同一个Tomcat部署多个项目是最简单的方式。如果需要独立端口,则配置多个Tomcat实例。注意:在部署过程中,如果遇到数据库连接问题,请确保在项目中正确配置数据库连接信息,并且在宝塔面板中创建对应的数据库并导入数据(引用[2]和[5]提到了数据库的创建和导入)。根据引用[2],一般的JavaWeb项目需要安装Tomcat和JDK环境,我们已经通过安装Tomcat同时安装了JDK。最后,如果遇到502错误(引用[3]提到),可能是Tomcat没有启动或端口冲突,请检查Tomcat的日志(在`/www/server/tomcat/logs`目录下)。请根据实际需求选择部署方案。</think>### 在宝塔面板部署两个Java Web项目(WAR包)的完整指南 #### 核心原理 在宝塔面板中部署多个Java Web项目的核心是**利用Tomcat的自动部署机制**:将WAR包放入`webapps`目录后,Tomcat会自动解压并部署应用。多个项目共享同一个Tomcat实例,通过不同的**上下文路径(Context Path)** 区分(如`http://ip:8080/project1`和`http://ip:8080/project2`)[^3][^5]。 --- ### 部署步骤(方案一:单Tomcat多项目 - 推荐) #### 1. 安装基础环境 - 登录宝塔面板 → **软件商店** → 搜索安装: - **Tomcat**(建议选Tomcat 8/9 + JDK 1.8组合) - **Nginx**(用于端口转发或域名绑定) - 在**安全**页面放行端口:`8080`(Tomcat默认端口)、`80`(HTTP)、`443`(HTTPS)[^1][^5]。 #### 2. 部署第一个项目 1. 上传WAR包: - 进入文件管理器 → 打开目录:`/www/server/tomcat/webapps/` - 上传`project1.war`(文件名将作为访问路径) 2. 自动部署: - Tomcat会在几秒内自动解压WAR包生成`project1`目录 3. 重启Tomcat: ```bash /etc/init.d/tomcat restart # 命令行重启 ``` *或在面板的 **Tomcat管理** 页面点击重启* 4. 访问测试: `http://服务器IP:8080/project1` #### 3. 部署第二个项目 1. 上传`project2.war`到**同一目录**(`/www/server/tomcat/webapps/`) 2. 重启Tomcat(同上) 3. 访问测试: `http://服务器IP:8080/project2` > ⚠️ **注意事项**: > - 如果项目需要**根路径访问**(如`http://ip:8080/`),将WAR包重命名为`ROOT.war`(但只能有一个ROOT项目) > - 修改项目路径:重命名WAR文件(如`new_name.war`)后重启Tomcat --- ### 进阶方案(方案二:多Tomcat实例 - 需独立端口) 适用于需要**完全隔离环境**的项目(如不同JDK版本): #### 1. 创建第二个Tomcat实例 ```bash # 复制Tomcat目录 cp -r /www/server/tomcat /www/server/tomcat2 # 修改端口(避免冲突) vim /www/server/tomcat2/conf/server.xml ``` 修改以下参数(示例): ```xml <Server port="8006" shutdown="SHUTDOWN"> <!-- 原8005 --> <Connector port="8081" protocol="HTTP/1.1" /> <!-- 原8080 --> <Connector port="8010" protocol="AJP/1.3" /> <!-- 原8009 --> ``` #### 2. 启动新实例 ```bash # 授权执行权限 chmod +x /www/server/tomcat2/bin/*.sh # 启动 /www/server/tomcat2/bin/startup.sh ``` #### 3. 部署项目 - 将WAR包放入`/www/server/tomcat2/webapps/` - 访问:`http://IP:8081/project_name` --- ### 优化配置(可选) #### 1. 通过Nginx绑定域名 ```nginx # project1 配置示例 server { listen 80; server_name project1.com; location / { proxy_pass http://127.0.0.1:8080/project1; proxy_set_header Host $host; } } # project2 配置示例 server { listen 80; server_name project2.com; location / { proxy_pass http://127.0.0.1:8080/project2; } } ``` #### 2. 数据库配置 1. 宝塔 **数据库** 页面创建两个独立数据库 2. 修改项目的`WEB-INF/classes/application.properties`或`context.xml`中的JDBC连接串[^2][^5] --- ### 常见问题解决 1. **502 Bad Gateway**: - 检查Tomcat是否运行:`ps -ef | grep tomcat` - 查看日志:`tail -f /www/server/tomcat/logs/catalina.out` - 确保JDK版本匹配(宝塔面板需安装对应JDK)[^3] 2. **WAR包未解压**: - 检查文件权限:`chown -R www:www /www/server/tomcat/webapps/` - 手动解压:`unzip project.war -d project_name` 3. **端口冲突**: - 修改Tomcat端口:`/www/server/tomcat/conf/server.xml` - 重启服务:`/etc/init.d/tomcat restart` > 部署完成后,建议在宝塔 **计划任务** 中添加Tomcat守护进程,防止服务意外停止[^5]。 --- ### 关键参考 [^1]: 宝塔官方安装指南与基础环境配置 [^2]: WAR包部署原理与数据库配置要点 [^3]: 多Tomcat实例配置与502错误解决方案 [^5]: 端口管理、Nginx反向代理与守护进程设置
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值