[英]NGINX Reverse Proxy for 2 jenkins servers. How?
我想在nginx反向代理后面運行2個jenkins服務器,但找不到合適的配置它。
下面的配置工作正常
location /jenkins {
proxy_pass https://contoso.com/jenkins;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
如果我嘗試將位置更改為/jenkins_test
,則它將不再起作用。
我怎么了
您將需要在其自己的服務器部分中定義兩個每個jenkins實例。 然后,根據您在nginx上調用的url,正確的jenkins服務器將響應。 您的nginx配置可能具有以下結構:
http{
# application server for first jenkins instance
upstream app_servers_first_jenkins_instance {
# if jenkins is running on the same server this should be something like 127.0.0.1 ...
server https://contoso.com/jenkins;
}
# application server for secons jenkins instance
upstream app_servers_second_jenkins_instance {
server https://contoso.com/jenkins;
}
# JENKINS SERVER 1
server{
listen 80;
server_name jenkinsfirstinstance.yourdomain.com;
location / {
proxy_pass http://app_servers_first_jenkins_instance;
}
}
# JENKINS SERVER 2
server{
listen 80;
server_name jenkinssecondinstance.yourdomain.com;
location / {
proxy_pass http://app_servers_second_jenkins_instance;
}
}
} # END OF HTTP SECTION
在此示例中,如果您希望它們是不同的詹金斯實例,則這兩個URL將調用相同的jenknins端點( https://contoso.com/jenkins ),您將在上游部分之一中修改此url。
如果要在nginx代理后面運行2台服務器,則意味着您需要2個位置上下文(也稱為“塊”)。
在可能位於/etc/nginx/sites-availables
的配置文件中,應添加以下位置:
http{
listen 80;
location /jenkins1 {
proxy_pass http://jenkins1-local-ip-address:8000;
include /etc/nginx/proxy_params;
}
location /jenkins2 {
proxy_pass http://jenkins2-local-ip-address:8001;
include /etc/nginx/proxy_params;
}
}
您應該注意的一件事是,我認為您的jenkins服務器位於同一LAN(局域網)中,否則在前面擁有代理服務器就沒有意義,因為您的服務器已經可以通過Internet訪問。
如果您的jenkins服務器可通過HTTPS訪問,則應在位置上下文中將http
更改為https
並編輯端口號以listen 443
和某些ssl證書配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.