मेरा प्रॉक्सी सर्वर आईपी ए पर चलता है और यही से लोग मेरी वेब सेवा तक पहुँच पाते हैं। Nginx कॉन्फ़िगरेशन IP B पर वर्चुअल मशीन पर रीडायरेक्ट करेगा।
आईपी ए पर प्रॉक्सी सर्वर के लिए, मेरी अपनी साइटों में यह उपलब्ध है
server {
listen 443;
ssl on;
ssl_certificate nginx.pem;
ssl_certificate_key nginx.key;
client_max_body_size 200M;
server_name localhost 127.0.0.1;
server_name_in_redirect off;
location / {
proxy_pass http://10.10.0.59:80;
proxy_redirect http://10.10.0.59:80/ /;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
rewrite ^(.*) https://$http_host$1 permanent;
server_name localhost 127.0.0.1;
server_name_in_redirect off;
location / {
proxy_pass http://10.10.0.59:80;
proxy_redirect http://10.10.0.59:80/ /;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
proxy_redirect
से लिया गया है कि कैसे मैं फिर से लिखने के माध्यम से HTTP POST अनुरोध भेजना nginx मिलता है?
सब कुछ जो सार्वजनिक आईपी को हिट करता है वह फिर से लिखने के कारण 443 हिट करेगा। आंतरिक रूप से, हम वर्चुअल मशीन पर 80 को अग्रेषित कर रहे हैं।
लेकिन जब मैं हमारे विन्यास को परखने के लिए एक पायथन लिपि को चलाता हूं जैसे कि नीचे
import requests
data = {'username': '....', 'password': '.....'}
url = 'http://IP_A/api/service/signup'
res = requests.post(url, data=data, verify=False)
print res
print res.json
print res.status_code
print res.headers
मुझे ए हो रही है 405 Method Not Allowed
। नगीनेक्स में हमने पाया कि जब यह आंतरिक सर्वर से टकराया था, तो आंतरिक नगनेक्स को एक GET
अनुरोध प्राप्त हो रहा था , भले ही मूल शीर्षलेख में हमने किया था POST
(यह पायथन लिपि में दिखाया गया था)।
तो ऐसा लगता है जैसे फिर से लिखना समस्या है। इसे ठीक करने के लिए कोई भी विचार? जब मैंने फिर से लिखा, तो यह निश्चित रूप से 80 हिट हो गया, और यह हो गया। चूंकि फिर से लिखना हमारे आंतरिक सर्वर से बात करने में सक्षम था, इसलिए खुद को फिर से लिखना कोई समस्या नहीं है। यह सिर्फ फिर से लिखने के लिए गिरा दिया POST
है GET
।
धन्यवाद!
(यह भी Nginx मंच पर पूछा जाएगा क्योंकि यह एक महत्वपूर्ण अवरोधक है ...)
PUT
,POST
,DELETE
,GET
। अपने पिछले सेटअप में मुझे भीड़ को परोसने के मोर्चे पर यह अतिरिक्त प्रॉक्सी नहीं थी। मेरे पास समान आंतरिक सर्वर (हमारे परीक्षण सर्वर) पर समान कॉन्फ़िगरेशन था। यह ठीक काम करता है।