Proxy Nginx背后的Rundeck反向代理
我已经为Nginx后面的Rundeck配置了反向代理。下面是位于路径/etc/nginx/sites enabled中的Rundeck.confProxy Nginx背后的Rundeck反向代理,proxy,reverse,rundeck,Proxy,Reverse,Rundeck,我已经为Nginx后面的Rundeck配置了反向代理。下面是位于路径/etc/nginx/sites enabled中的Rundeck.conf ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_prefer_server_ciphers on; ## server config
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_cache shared:SSL:1m;
ssl_prefer_server_ciphers on;
## server configuration
server {
listen 443 ssl;
listen 80 ;
server_name ~(?<repo>.+)\.pilot1 pilot1;
if ($http_x_forwarded_proto = '') {
set $http_x_forwarded_proto $scheme;
}
## Application specific logs
## access_log /var/log/nginx/pilot1.ci1.peapod.com-access.log timing;
## error_log /var/log/nginx/pilot1.ci1.peapod.com-error.log;
# rewrite ^/$ /rundeck/menu/home redirect;
rewrite ^/rundeck/?(/rundeck)?$ /rundeck/menu/home redirect;
chunked_transfer_encoding on;
client_max_body_size 0;
location ^~ /rundeck/ {
proxy_pass http://localhost:4440;
proxy_read_timeout 900;
}
}
ssl\u证书/etc/nginx/ssl/server.crt;
ssl\u certificate\u key/etc/nginx/ssl/server.key;
ssl_会话_缓存共享:ssl:1m;
ssl首选服务器上的密码;
##服务器配置
服务器{
听443ssl;
听80;
服务器名称~(?。+)\.pilot1 pilot1;
如果($http_x_forwarded_proto=''){
设置$http\u x\u转发的\u协议$scheme;
}
##特定于应用程序的日志
##access_log/var/log/nginx/pilot1.ci1.peapod.com-access.log定时;
##error_log/var/log/nginx/pilot1.ci1.peapod.com-error.log;
#重写^/$/rundeck/menu/home重定向;
重写^/rundeck/?(/rundeck)?$/rundeck/menu/home重定向;
分块传输编码;
客户端\最大\主体\大小0;
位置^~/跑道甲板/{
代理通行证http://localhost:4440;
代理读取超时900;
}
}
当我浏览并登录到Rundeck时,反向代理可以正常工作。但是当我单击注销时,重定向到登录页面会显示端口:4440
如下
登录-->pilot1/rundeck重定向到pilot1/rundeck/menu/home(正常工作)
注销-->pilot1:4440/rundeck/user/loggedout
我不希望端口暴露在外。如何解决此问题?以下是我必须做的: 在NGINX配置中,在适当的“服务器”部分下设置一个位置:
location /rundeck/ {
proxy_pass http://localhost:4440;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Rundeck配置:
sed -i "/^grails.serverURL/c grails.serverURL = ${RUNDECK_URL}" /etc/rundeck/rundeck-config.properties
sed -i "/^framework.server.url/c framework.server.url = ${RUNDECK_URL}" /etc/rundeck/framework.properties
sed -i '/^RDECK_JVM="$RDECK_JVM/ s/"$/ -Dserver.web.context=\/rundeck"/' /etc/rundeck/profile
其中
RUNDECK\u URL
应该指向您的NGINX ip(dns名称),那么您是否将framework.RUNDECK.URL和grails.serverURL设置为使用https?检查/etc/rundeck/framework.properties
中的framework.rundeck.url
,以及/etc/rundeck/rundeck-config.properties
中的grails.serverURL
。只需了解一些细节:1]似乎“server.web.context”参数不再存在(rundeck 3.2.8),新参数是“server.contextPath”。2] 您不应该更改/etc/rundeck/profile,因为它可以在rundeck升级时被覆盖。正如文档所建议的,您应该使用/etc/default/rundeckd(on-DEB install)和以下内容:RDECK\u JVM\u OPTS=“-Dserver.contextPath=/rundeck”
文档:其中一部分不应作为/etc/rundeck/profile
,可以在升级时更新。保存到/etc/defaults/rundeckd