nginx代理jenkins加contextPath后的配置问题

对外端口资源有限,需要通过nginx代理jenkins,配置contextPath  /jenkins 。

配置过程颇费周折,记录如下:

1、jenkins 启动加参数  --prefix ==/jenkins    完整启动命令如下

nohup java -jar jenkins.war --httpPort=8080 --prefix=/jenkins &

 

2、ngninx 关键配置:

location /jenkins{
    proxy_pass http://ip:port;
}

location = /jenkins/ {
    proxy_pass http://ip:port/jenkins/index;   
}  

最后终于可以愉快地 通过 外网ip:port/jenkins    来访问jenkins,同时不占用端口。

### OpenSSL 在 Kubernetes 中的配置与使用 OpenSSL 是一种广泛使用的工具包,支持多种密算法并提供开发应用程序所需的功能库。在 Kubernetes 的环境中,OpenSSL 主要用于生成证书和密钥文件,这些文件对于启用安全通信至关重要。 #### 1. 使用 OpenSSL 生成私钥和证书 为了在 Kubernetes 集群中实现 SSL/TLS 密,通常需要生成私钥和公钥证书。以下是基于 OpenSSL 创建私钥和证书的过程: ```bash # 创建私钥 openssl genrsa -out ca.key 2048 # 基于私钥创建自签名证书 openssl req -x509 -new -nodes -key ca.key \ -subj "/CN=example.com/O=Kubernetes/C=US" \ -days 36500 -out ca.crt ``` 此过程会生成 `ca.key` 私钥以及对应的 `ca.crt` 自签名证书[^2]。这些文件可以作为 Kubernetes API Server 或其他组件的安全基础。 #### 2. 将证书应用于 Nginx Ingress Controller 如果在 Kubernetes 集群中部署了 Nginx Ingress Controller,则可以通过以下方式指定 SSL 证书路径: ```nginx server { listen 443 ssl; server_name www.example.com; ssl_certificate /path/to/public.pem; ssl_certificate_key /path/to/private.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } ``` 在此配置中,`ssl_certificate` 和 `ssl_certificate_key` 参数分别指向 PEM 格式的公钥证书和私钥文件[^1]。 #### 3. Kubernetes 配置中的 CA 文件存储位置 在 Kubernetes 集群初始化过程中,CA 文件会被放置在一个特定目录下以便后续使用。例如,在安装 KubeSphere 和 Kubernetes 的场景中,可能会执行以下命令来设置 CA 文件的位置: ```bash mkdir -p /etc/kubernetes/pki && mv ~/ca /etc/kubernetes/pki ls /etc/kubernetes/pki ``` 这一步骤确保所有节点能够访问统一的 CA 文件,从而简化集群间的身份验证流程。 #### 4. Jenkins 连接到多 Kubernetes 集群 当涉及多个 Kubernetes 集群时,Jenkins 默认会在 `~/.kube/config` 路径寻找 kubeconfig 文件。通过手动编辑该文件或将额外的上下文添进去,可以使 Jenkins 同时管理不同集群资源。例如: ```yaml apiVersion: v1 clusters: - cluster: certificate-authority-data: <base64-encoded-ca-cert> server: https://cluster1.example.com name: cluster1 contexts: - context: cluster: cluster1 user: admin-cluster1 name: ctx-cluster1 current-context: ctx-cluster1 kind: Config users: - name: admin-cluster1 user: client-certificate-data: <base64-encoded-client-cert> client-key-data: <base64-encoded-client-key> ``` 上述 YAML 定义了一个名为 `ctx-cluster1` 的上下文,并关联至目标 Kubernetes 集群及其认证数据[^4]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值