利用一个IP同时部署JIRA与Confluence.
JIRA/Confluence简介
JIRA是Atlassian公司开发的一套IT研发管理工具,许多IT大厂都在使用;另外,也是一套非常好用的项目管理工具,适用于多部门协作,可以记录项目状态,推进项目进度。
Confluence是Atlassian公司开发的知识管理工具,与JIRA可以搭配使用,作用与wiki比较类似,适用于记录各种常见问题,记录会议纪要等等。
为什么要做反向代理
- 对个人或者小微企业而言,固定的IP资源还是非常宝贵的,每年为IP付出的成本较高。
- 反向代理可以摆脱固定IP限制,直接将服务器与域名绑定,轻松实现域名访问。
- 由于脱离了固定IP限制,可以一定程度上绕过备案(不备案或只备案一台有固IP的转发服务器即可)
为什么要做内网穿透
- 个人或小微企业的服务器通常放在局域网环境下
- 如果要从因特网(Internet)访问到服务器,必须穿透连接局域网与因特网的连接:路由器
- 个人入户路由器的IP通常是不固定的
解决方案1
在具有固定IP的服务器搭建ngrokd服务,作为转发服务器,所有访问内网服务器的流量均通过该转发服务器。
- 需要购买阿里云/腾讯云服务器等有固定IP的服务器,作为转发服务器
- 在转发服务器搭建ngrokd服务
- 隧道数目理论无限制
转发服务器搭建
见往期 博客,不再赘述
现有资源
- H1:安装JIRA/confluence的服务器,需要通过反向代理暴露到因特网,没有固定外网IP
- H2:作为ngrokd的转发服务器,已备案域名,如 abcd.efg
期望访问JIRA/confluence效果
- 通过 http://jira.abcd.efg 访问jira
- 通过 http://confluence.abcd.efg 访问confluence
解决思路
设置多个ngrok隧道,在配置文件中添加subdomain标签即可实现
配置方法
- 关闭H2服务器80端口,注意如果用宝塔,则需要修改/www/server/panel/vhost/nginx/.conf下所有文件*
- H2运行下列命令
1
/usr/sbin/ngrokd -domain=abcd.efg -log-level=WARNING -httpAddr=:80 -httpsAddr=:443
- H1运行H1的ngrok客户端配置:
1
ngrok-work --config=web.cfg start jira confluence
1
2
3
4
5
6
7
8
9
10
11server_addr: "abcd.efg:443"
trust_host_root_certs: false
tunnels:
jira:
subdomain: jira
proto:
http: 8080
confluence:
subdomain: confluence
proto:
http: 8090
解决方案2
利用国内Ngrok服务提供商(natapp,sunny-ngrok,等)提供的ngrok服务
- 无需购买搭建ngrokd转发服务器,使用方便
- 一般按照需要隧道数目付费
搭建方式
服务商一般会提供:
- 一个已编译好的可执行程序
- 一个token,或者其他身份识别凭据
按照服务商的教程,在网页端设定需要转发的端口号,在服务器运行ngrok命令即可实现转发
例如natapp的运行方式:
1 | natapp -authtoken=dsafaewqr23421fjkwqjfdf -log=stdout |
注,如需作为长期服务,可以自己构建service命令,利用systemctl管理服务
现有资源
- H1:存放JIRA和confluence的服务器,没有固定外网IP
- H2:Ngrok服务商提供的域名及隧道token等,但只能绑定一个域名(如abcdefg.s1.natapp.cc)
期望访问JIRA/confluence效果
- 通过 http://abcdefg.s1.natapp.cc/jira 访问jira
- 通过 http://abcdefg.s1.natapp.cc/confluence 访问confluence
解决思路
利用apache的反向代理功能,将服务器的不同端口转发到不同的url空间
修改方法
- apache http配置文件中添加/etc/httpd/conf.d/proxy.conf
1
2
3
4
5
6
7
8
9
10ProxyPass /jira http://127.0.0.1:8080/jira
ProxyPassReverse /jira http://127.0.0.1:8080/jira
ProxyPass /confluence http://127.0.0.1:8090/confluence
ProxyPassReverse /confluence http://127.0.0.1:8090/confluence
<proxy *>
AllowOverride None
Order Deny,Allow
Allow from all
</proxy> - 在jira配置中修改:
1
2
3
4
5
6
7
8
9
10
11
12
13
14<Service name="Catalina">
<Connector port="8080"
#添加如下三行代码:
proxyName="abcdefg.s1.natapp.cc"
proxyPort="80"
scheme="http"
bindOnInit="false"/>
#path中添加/jira
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
注意事项
- 修改完之后,要登录jira,修改 服务器主页URL
- 如配置了LDAP服务,需要修改confluence中用户目录JIRA Server的地址(只有同步失败且放到第二选项才能编辑)