ಪ್ರಾಕ್ಸಿ_ಪಾಸ್ ಎಲ್ಲಾ ವಿನಂತಿಯನ್ನು ನಿರ್ದಿಷ್ಟ ಐಪಿ ಆದರೆ ಎಲ್ಲಾ ಇತರ ಐಪಿಗಳಿಗೆ ಸ್ಥಿರ ಫೈಲ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ

ನನ್ನ ವೆಬ್‌ಅಪ್‌ನ ಮುಂದೆ ಎನ್‌ಜಿನ್ಎಕ್ಸ್ ಪ್ರಾಕ್ಸಿ ಇದೆ. ನಾನು ಕಾಲಕಾಲಕ್ಕೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನವೀಕರಿಸಲು ಬಯಸುತ್ತೇನೆ ಮತ್ತು ನವೀಕರಣದ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರು ಸ್ಥಿರವಾದ ಪುಟವನ್ನು ನೋಡಬೇಕೆಂದು ನಾನು ಬಯಸುತ್ತೇನೆ ಅದು ಅಪ್ಲಿಕೇಶನ್ ಅಲಭ್ಯತೆಯನ್ನು ಹೊಂದಿದೆ ಎಂದು ತಿಳಿಸುತ್ತದೆ. ಈ ಹಂತದವರೆಗೆ ಯಾವುದೇ ತೊಂದರೆ ಇಲ್ಲ.

ಈಗ ನಾನು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು UI ಪರೀಕ್ಷಾ ಚೌಕಟ್ಟಿನೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಲು ಬಯಸುತ್ತೇನೆ, ಅದು ಅಲಭ್ಯತೆಯ ಸಮಯದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಗಮನಿಸಿ: ನಾನು ಇದೀಗ ಪರೀಕ್ಷಾ ಸರ್ವರ್ ಸೆಟಪ್ ಅನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ.

ನಾನು ಯುಐ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುವ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಹೊಂದಿದ್ದೇನೆ, ಆದ್ದರಿಂದ ನಾನು ಎನ್‌ಜಿನ್ಎಕ್ಸ್ ಸಂರಚನೆಯನ್ನು ಮಾರ್ಪಡಿಸಲು ಬಯಸುತ್ತೇನೆ, ಆದ್ದರಿಂದ ವಿಎಂ ಮಾತ್ರ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಪ್ರವೇಶಿಸಬಹುದು, ಉಳಿದ ಎಲ್ಲಾ ಐಪಿ-ಗಳಿಗೆ ಸ್ಥಿರ ಪುಟವನ್ನು ನೀಡಲಾಗುತ್ತದೆ.

ನನ್ನ ಮೂಲ $ ರಿಮೋಟ್_ಅಡಿಆರ್ ಇಲ್ಲದಿದ್ದರೆ, ನಂತರ ಟ್ರೈ_ಫೈಲ್ಸ್ ನೊಂದಿಗೆ ಸ್ಥಿರ ಫೈಲ್‌ಗಳನ್ನು ಒದಗಿಸಿ ಎಂದು ಹೇಳುವ ಸರ್ವರ್ ಬ್ಲಾಕ್‌ನೊಳಗೆ if ಹೇಳಿಕೆಯನ್ನು ಬಳಸುವುದು ವಿಧಾನವಾಗಿದೆ. ಇಲ್ಲದಿದ್ದರೆ (ವಿಎಂ ಸಂದರ್ಭದಲ್ಲಿ) ಎಲ್ಲಾ ದಟ್ಟಣೆ ಒಂದೇ ದಾರಿಯಲ್ಲಿ ಹೋಗುತ್ತದೆ.

ನಾನು ವಿಭಿನ್ನ ಪರಿಹಾರಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ, ಆದರೆ ಸರಳವಾದವುಗಳನ್ನು try_files ನಿರ್ದೇಶನವನ್ನು if ಹೇಳಿಕೆಯೊಳಗೆ ಇರಿಸುವಂತೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ.

url ಅನ್ನು ಇತರ ಐಪಿಗಳಿಂದ ಬರುತ್ತಿದ್ದರೆ ನಾನು ಅದನ್ನು ಪುನಃ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸಿದೆ. VM ಗಿಂತ, ಆದರೆ ಇದರರ್ಥ ಎಲ್ಲಾ CSS ಮತ್ತು jpg ವಿನಂತಿಗಳನ್ನು ಪುನಃ ಬರೆಯಲಾಗುತ್ತದೆ. ಹಾಗಾಗಿ ನಾನು ಈ ರೀತಿಯೊಂದಿಗೆ ಕೊನೆಗೊಂಡಿದ್ದೇನೆ:

location ~* ^.+\.(jpg||png|css)$ 
{
    try_files $uri = 404;
}

if ( $remote_addr !~* <VM IP> ) {
  rewrite ^ https://example.com/static.html; 
}  

location /static.html
{
    try_files $uri /static.html = 404;
}
location /
{
# headers
proxy_pass <internal-server>; 
} 

ಇದು ಹ್ಯಾಕ್ IMO ಆಗಿದೆ, ಮತ್ತು ವಾಸ್ತವವಾಗಿ ಇದು ಸಹ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಈ ಮೊದಲು ಏನಾದರೂ ಮಾಡಿದ ವ್ಯಕ್ತಿಯಿಂದ ನಾನು ವಿಭಿನ್ನ ಮತ್ತು ಸರಳವಾದ ಪರಿಹಾರವನ್ನು ಹುಡುಕುತ್ತಿದ್ದೇನೆ.

ಎನ್‌ಜಿನ್ಎಕ್ಸ್ ಜಿಯೋ ಮಾಡ್ಯೂಲ್ ಬಗ್ಗೆ ನನಗೆ ತಿಳಿದಿದೆ, ಆದರೆ ನನಗೆ ಅದು ನಿಜವಾಗಿಯೂ ಬೇಕು ಎಂದು ನಾನು ಭಾವಿಸುವುದಿಲ್ಲ, ಸಹ ಬಯಸುತ್ತೇನೆ ವಿಷಯಗಳನ್ನು ಸರಳವಾಗಿಡಲು.

ಆದ್ದರಿಂದ ಮತ್ತೆ, ಐಪಿ ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದಲ್ಲಿ ಎಲ್ಲಾ ಸಂಚಾರವನ್ನು ಸ್ಥಿರ ಪುಟಕ್ಕೆ ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ. (ವಿನಂತಿಗಳು URL ಗಳು ಒಂದೇ ಆಗಿರಬಹುದು, ಆದ್ದರಿಂದ ಸ್ಥಳ ಆಧಾರಿತ ಪರಿಹಾರಗಳು ನನಗೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ)

1
задан 10 October 2019 в 12:07
1 ответ

Вы можете упростить конфигурацию, поместив все статическое содержимое под общий префикс URI (например, / maintenance / ... ).

Например:

location / {
    if ($remote_addr != '1.2.3.4') {
        rewrite ^ /maintenance/ last;
    }
    ...
    proxy_pass ...;
}
location /maintenance/ {
    root /path/to/root;
    index index.html;
}

Страница обслуживания находится по адресу /path/to/root/main maintenance/index.html . Файлы ресурсов расположены в одном каталоге и доступны с использованием относительных URI (например, foo.css ) или с префиксом (например, /main maintenance/foo.css ).

0
ответ дан 4 December 2019 в 02:39

Теги

Похожие вопросы