Confluence7 配置docker Nginx https 反向代理

4 篇文章 0 订阅
3 篇文章 0 订阅

前言:首先默认你的Confluence 已经安装好并且设置好证书,此处不做证书导入等介绍。

1、docker

1.拉取仓库nginx镜像,不加版本号默认拉取最新的版本

#docker pull nginx

2.创建一个 start.sh ,启动docker的脚本,内容如下:

docker rm -f nginx 2> /dev/null
docker run -itd \
--name nginx \
--dns=10.0.0.1 \  # 你自己的dns服务器
--restart=always \
-p 127.0.0.1:443:443 \
-p 127.0.0.1:80:80 \
-v /data/nginx_https/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx_https/conf/default.conf:/etc/nginx/conf.d/default.conf \
-v /data/nginx_https/logs/:/var/log/nginx \
-v /data/nginx_https/conf/ssl:/ssl \
nginx

3.创建/data/nginx_https/ 目录

4.文件准备

4.1 新建文件/data/nginx_https/conf/nginx.conf

#运行nginx的用户
user  nginx;
#启动进程设置成和CPU数量相等
worker_processes  1;
 
#全局错误日志及PID文件的位置
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
#工作模式及连接数上限
events {
        #单个后台work进程最大并发数设置为1024
    worker_connections  1024;
}
 
 
http {
        #设定mime类型
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
        #设定日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
        #设置连接超时的事件
    keepalive_timeout  65;
 
        #开启GZIP压缩
    #gzip  on;
 
    include /etc/nginx/conf.d/*.conf;
}

4.2新建文件/data/nginx_https/conf/default.conf


server {
    listen 80;
    server_name wiki.cs;

    listen 443 default ssl;
    ssl_certificate     /ssl/server.crt;
    ssl_certificate_key /ssl/server_nopwd.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    location / {
        client_max_body_size 100m;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://wiki.cs;   # 这是你自己的域名或者默认配置为wiki的ip:8090端口
    }

    location /synchrony {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://wiki.cs/synchrony;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}

5.通过openssl生成证书配置https 

cd /data/nginx_https/conf/ssl

1)设置server.key,这里需要设置两遍密码:

#openssl genrsa -des3 -out server.key 1024

2)参数设置,首先这里需要输入之前设置的密码,然后需要输入如下的信息,大概填一下就可以了,反正是测试用的, 或者一路回车:

#openssl req -new -key server.key -out server.csr

3) 写RSA秘钥,先输入之前设置的密码:

#openssl rsa -in server.key -out server_nopwd.key

4)获取私钥:

#openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

完成这一步之后就得到了我们需要的证书文件和私钥了

Confluence 配置

1.在官网中首先让你设置上下文路径和修改Tomcat 的server.xml文件,但是不知道是不是因为我的confluence为docker,我每次重启docker的时候,server文件都是重新生成的,所以一下为修改生成server.xml的server.xml.j2文件,如果有人遇见了可以直接修改xml的,对应修改即可。

2.修改docker confluence 内的/opt/atlassian/etc/server.xml.j2 文件。

找到Connector 配置项,修改代码中的secure,scheme,proxyName,proxyPort四项。

如secure : secure="{{ atl_tomcat_secure | default(catalina_connector_secure) | default('true') }}"

将最后| default('true')  括号里面改为true,

    <Connector port="{{ atl_tomcat_port | default('8090') }}"
               maxThreads="{{ atl_tomcat_maxthreads | default('100') }}"
               minSpareThreads="{{ atl_tomcat_minsparethreads | default('10') }}"
               connectionTimeout="{{ atl_tomcat_connectiontimeout | default('20000') }}"
               enableLookups="{{ atl_tomcat_enablelookups | default('false') }}"
               protocol="{{ atl_tomcat_protocol | default('HTTP/1.1') }}"
               redirectPort="{{ atl_tomcat_redirectport | default('8443') }}"
               acceptCount="{{ atl_tomcat_acceptcount | default('10') }}"


               secure="{{ atl_tomcat_secure | default(catalina_connector_secure) | default('true') }}"
               scheme="{{ atl_tomcat_scheme | default(catalina_connector_scheme) | default('https') }}"
               proxyName="{{ atl_proxy_name | default(catalina_connector_proxyname) | default('wiki.cs') }}"
               proxyPort="{{ atl_proxy_port | default(catalina_connector_proxyport) | default('443') }}"


               relaxedPathChars="[]|"
               relaxedQueryChars="[]|{}^\`&quot;&lt;&gt;"
               bindOnInit="false"
               maxHttpHeaderSize="{{ atl_tomcat_maxhttpheadersize | default('8192') }}"
               useBodyEncodingForURI="true"
               disableUploadTimeout="true" />

3、管理员登陆页面,配置路由为https,(这一步很重要,不然会有跨域之类的问题)这里应该默认为http://ip:8090

 

 

启动

1、sh start.sh  # 第一步中创建的文件,启动Nginx。
2、docker restart confluence   # confluence 为你的 confluence-docker名

然后页面就可以https访问了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值