2012-07-25 13 views
8

मैं अपने सर्वर पर जेनकींस स्थापित छोड़कर साथ nginx http प्रमाणन जेनकींस सुरक्षित रखें और मैं चाहता हूँ के साथ nginx http प्रमाणन यह संरक्षित ताकि करने के लिए अनुरोध:कॉलबैक यूआरएल

:

http://my_domain.com:8080 
http://ci.my_domain.com 

एक स्थान को छोड़कर रक्षा की जाएगी

http://ci.my_domain.com/job/my_job/build 

निर्माण को ट्रिगर करने के लिए आवश्यक है। मैं nginx के लिए थोडा नया हूँ इसलिए मैं इसके लिए nginx config के साथ फंस गया।

upstream jenkins { 
    server 127.0.0.1:8080; 
} 

server { 
    listen x.x.x.x:8080; 
    server_name *.*; 

    location '/' { 
    proxy_pass http://jenkins; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    auth_basic "Restricted"; 
    auth_basic_user_file /path/.htpasswd;  
    } 
} 

मैं ऊपर config की तरह ख़ाली करने की कोशिश की लेकिन जब मैं http://my_domain.com:8080 जाएँ कोई http प्रमाणन है।

+0

कि लगभग समान क्लोन मेरे लिए ठीक काम करता है; आप असली कॉन्फ़िगरेशन में अपस्ट्रीम और nginx दोनों के लिए 8080 का उपयोग नहीं कर रहे हैं, है ना? – furq

+0

असली कॉन्फ़िगरेशन में आपका क्या मतलब है? जैसा कि मैं समझता हूं कि nginx 8080 पोर्ट अनुरोध नहीं पकड़ सकता है इसलिए मुझे इसे फ़ायरवॉल से अवरुद्ध करने की आवश्यकता है और x.x.x.x: 8080 पर प्रॉक्सी सीआई सबडोमेन अनुरोध – makaroni4

उत्तर

7

अंततः मुझे पता चला कि इस समस्या को कैसे हल किया जाए। सबसे पहले हमें जेनकींस पेज प्रबंधित करें पर "सुरक्षा सक्षम करें" विकल्प को अनचेक करने की आवश्यकता है। सुरक्षा अक्षम होने के साथ हम http://ci.your_domain.com/job/job_name/build जैसे अनुरोधों के साथ अपनी नौकरियों को ट्रिगर कर सकते हैं।

यदि आप यूआरएल ट्रिगर करने के लिए टोकन जोड़ना चाहते हैं तो हमें सुरक्षा सक्षम करने की आवश्यकता है, "परियोजना-आधारित मैट्रिक्स प्राधिकरण रणनीति" चुनें और अनाम उपयोगकर्ता को व्यवस्थापक अधिकार दें। अपनी परियोजना के विन्यस्त करें पृष्ठ में यह करने के बाद हो जाएगा "उत्प्रेरक दूर से बनाता है" विकल्प जहां निर्दिष्ट कर सकते हैं कर लेंगे ताकि आपके अनुरोध की तरह JENKINS_URL/job/onru/build?token=TOKEN_NAME

विकलांग सुरक्षा के साथ

तो दिखेगा हम /job/job_name/build' तरह यूआरएल को छोड़कर nginx http_auth साथ http://ci.your_domain.com की रक्षा के लिए की जरूरत है।

और निश्चित रूप से हमें बाहरी अनुरोधों से 8080 पोर्ट छिपाने की आवश्यकता है। के बाद से अपने सर्वर Ubuntu पर है मैं iptables का उपयोग कर सकते फ़ायरवॉल:

iptables -A INPUT -p tcp --dport 8080 -s localhost -j ACCEPT 
iptables -A INPUT -p tcp --dport 8080 -j DROP 

लेकिन! उबंटू पर (मुझे अन्य लिनक्स ओएस के बारे में निश्चित नहीं है) रीबूट के बाद iptables गायब हो जाएंगे। इसलिए हमें उन्हें बचाने की जरूरत है:

iptables-save 

और यह अंत नहीं है। इस कमांड के साथ हम सिर्फ iptables के साथ एक फाइल प्राप्त करते हैं।

sudo apt-get install iptables-persistent 
iptables-save > /etc/iptables/rules 

iptables को करीब से देख लो अगर https://help.ubuntu.com/community/IptablesHowTo#Saving_iptables और जेनकींस के साथ अच्छी किस्मत की जरूरत: प्रारंभ करने पर हम सबसे आसान तरीका उपयोग करने के लिए 'uptables लगातार' पैकेज है iptables लोड करने के लिए की जरूरत है और!

और वहाँ अपने सर्वर की उप डोमेन पर जेनकींस चलाने के लिए अच्छा उदाहरण है: https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx

संबंधित मुद्दे