1. 从子域运行 Rundeck

让我们创建一个名为 rundeck.conf 的新 Nginx 配置文件,如下所示,或者我们可以编辑默认的 Nginx 配置文件

# vi /etc/nginx/conf.d/rundeck.conf
server {
    listen 80;
    listen [::]:80;
    server_name rundeck.onitroad.local; # Replace it with your Subdomain
    access_log  /var/log/nginx/rundeck.onitroad.local.access.log;
    location/{
        proxy_pass http://localhost:4440/;
    }
}

打开framework.properties文件,修改如下:

# vi /etc/rundeck/framework.properties#########       HTTP                    #############
framework.server.name = rundeck.onitroad.local #Replace it with your Subdomain
framework.server.hostname = rundeck.onitroad.local #Replace it with your Subdomain
framework.server.port = 4440
framework.server.url = http://rundeck.onitroad.local #Replace it with your Subdomain

现在打开 rundeck-config.properties 文件并用 Rundeck 服务器的 Sudomain URL 替换 grails.serverURL 的值:

# vi /etc/rundeck/rundeck-config.properties
# change hostname heregrails.serverURL=http://rundeck.onitroad.local #Replace it with your Subdomain

最后重启 Rundeck 守护进程和 Nginx:

# /etc/init.d/rundeckd restart
Restarting rundeckd (via systemctl):                       [  OK  ]
# Systemctl restart nginx

如果我们在 CentOS 7 或者 RHEL 7 上安装了 Rundeck 和 Nginx,并且启用了 Selinux,则需要执行以下命令:

# setsebool -P httpd_can_network_connect=1
如何使用 SSL 配置 Nginx 作为 Rundeck 的反向代理

2.使用 SSL 从子域运行 Rundeck

在开始之前,让我们生成一个 SSL 自签名证书,如果我们想避免浏览器警告,我们可以使用 Let's Encrypt 工具或者 Certbot 获取官方签名的证书:

cd /etc/nginx
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/rundeck.key -out /etc/nginx/rundeck.crt
# vi /etc/nginx/conf.d/rundeck.conf
server {
    listen 443 ssl; 
    server_name rundeck.onitroad.local; # Replace it with your Subdomain
    access_log  /var/log/nginx/rundeck.onitroad.local.access.log;
    ssl_certificate           /etc/nginx/rundeck.crt;
    ssl_certificate_key       /etc/nginx/rundeck.key;
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
    location/{
        #add_header          Front-End-Https on;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_pass          http://localhost:4440;
        proxy_read_timeout  90;
        proxy_redirect      http://localhost:4440 https://rundeck.onitroad.local; # Replace it with your Subdomain
    }
}
server {
    listen 80;
    server_name rundeck.onitroad.local; # Replace it with your Subdomain
    return 301 https://$host$request_uri;
}

打开framework.properties文件,修改如下:

# vi /etc/rundeck/framework.properties###############     HTTPS     #########################
framework.server.name = rundeck.onitroad.local # Replace it with your Subdomain
framework.server.hostname = rundeck.onitroad.local # Replace it with your Subdomain
framework.server.port = 4440
framework.server.url = https://rundeck.onitroad.local # Replace it with your Subdomain

打开 rundeck-config.properties 文件并将 grails.serverURL 的值替换为 Rundeck 服务器的 Sudomain URL:

# vi /etc/rundeck/rundeck-config.properties
# change hostname heregrails.serverURL=https://rundeck.onitroad.local # Replace it with your Subdomain

最后重启 Rundeck 守护进程和 Nginx:

# /etc/init.d/rundeckd restart
Restarting rundeckd (via systemctl):                       [  OK  ]
# Systemctl restart nginx

如果我们在 CentOS 7 或者 RHEL 7 上安装了 Rundeck 和 Nginx,并且启用了 Selinux,则需要执行以下命令:

# setsebool -P httpd_can_network_connect=1

介绍

默认情况下,Rundeck 带有自己的内置 Web 服务器,它侦听端口 4440 或者 4443.
使用更安全的 Web 服务器(如 Nginx 或者 apache)作为 Rundeck Server 的反向代理是个好主意。

本文将详细介绍如何将 Nginx Web 服务器配置为 Rundeck 的反向代理。
本文将分为两部分,第一部分我们将展示如何使用 HTTP 从子域运行 Rundeck,第二部分将详细说明如何使用 SSL 从子域运行 Rundeck。

日期:2020-06-02 22:18:52 来源:oir作者:oir