关于如何在CentOS7中如何利用Docker中的Nginx容器反向代理MantisBT容器并连接宿主机数据库

是的标题确实很长,意思就是,我现在Docker里面有MantisBT和Nginx,系统里安装了MySQL,要如何把他们连在一起?

注意因为MantisBT与MySQL高版本会有字符集不兼容的问题,所以我采用了低版本的MySQL(5.7.24);采用高版本也可以,只需要修改M有SQL的字符集规则即可。

首先先安装Nginx和MantisBT。

MantisBT:#

基于Docker 安装 MantisBT 及配置

上面的博客你做到挂载配置文件前就行,等我们用Nginx反向代理完

Nginx:#

记得在run的时候加上 --link mantisbt

Docker 安装 Nginx 容器

因为需要将配置文件以及log挂载到外面,所以需要按照上面的博客操作。

MySQL:#

Linux CentOS卸载MySQL(Linux安装MySQL前的准备)

Error:安装mysql报错No package mysql-community-server available.

CentOS7安装MySQL

linux-Mysql安装出错-The GPG keys listed for the “MySQL 5.7 Community Server“ repository are already...

mysql报错 Your password does not satisfy the current policy requirements

关于为什么不把MySQL放到Docker:#

为什么不建议把数据库部署在Docker容器内?

关于Nginx的反向代理配置:#

如果只设置了 location / 的话,MantisBT的css和js等资源都无法加载,所以需要解决nginx部署后css、js、图片等样式不加载的问题

upstream mantisbt{
	server mantisbt;
}

server {
    listen  80;
    server_name    xx.xxx.xx.x #你的服务器ip;

    location / {
 	   proxy_pass http://mantisbt;	#因为link了所以可以直接通过容器名访问
    }

    location ~ .* {		#这里是因为mantisbt的css和js无法加载而加的
        proxy_pass http://mantisbt;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

配置完之后发现Nginx已经可以反向代理到MantisBT了。之后就进行MantisBT的初始化。

因为MantisBT是在docker里的,所以在linux环境下,容器只能通过172.17.0.1去访问宿主机环境,但是又因为linux防火墙的问题会出现no route to host问题,以下是解决方案:

远程连接访问mysql数据库

初始化完成后,就可以按照之前MantisBT的教程,把相关配置文件挂载到外部。之后就完成了!

posted @   ViKyanite  阅读(187)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩