NGINX ನಲ್ಲಿ ಪ್ರತ್ಯೇಕ PHP-FPM ಪೂಲ್ಗಳನ್ನು ಹೇಗೆ ಹೊಂದಿಸುವುದು
ಪ್ರಕಟಣೆ: ಫೆಬ್ರವರಿ 15, 2025 ರಂದು 11:55:08 ಪೂರ್ವಾಹ್ನ UTC ಸಮಯಕ್ಕೆ
ಈ ಲೇಖನದಲ್ಲಿ, ಬಹು PHP-FPM ಪೂಲ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಮತ್ತು FastCGI ಮೂಲಕ NGINX ಅನ್ನು ಅವುಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಅಗತ್ಯವಿರುವ ಸಂರಚನಾ ಹಂತಗಳನ್ನು ನಾನು ಪರಿಶೀಲಿಸುತ್ತೇನೆ, ಇದು ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ಗಳ ನಡುವೆ ಪ್ರಕ್ರಿಯೆ ಬೇರ್ಪಡಿಕೆ ಮತ್ತು ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
How to Set Up Separate PHP-FPM Pools in NGINX
ಈ ಪೋಸ್ಟ್ನಲ್ಲಿರುವ ಮಾಹಿತಿಯು ಉಬುಂಟು ಸರ್ವರ್ 14.04 x64 ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ NGINX 1.4.6 ಮತ್ತು PHP-FPM 5.5.9 ಅನ್ನು ಆಧರಿಸಿದೆ. ಇದು ಇತರ ಆವೃತ್ತಿಗಳಿಗೆ ಮಾನ್ಯವಾಗಿರಬಹುದು ಅಥವಾ ಇಲ್ಲದಿರಬಹುದು. (ನವೀಕರಣ: ಉಬುಂಟು ಸರ್ವರ್ 24.04, PHP-FPM 8.3 ಮತ್ತು NGINX 1.24.0 ರಂತೆ, ಈ ಪೋಸ್ಟ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಸೂಚನೆಗಳು ಇನ್ನೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ನಾನು ಖಚಿತಪಡಿಸಬಲ್ಲೆ)
ಒಂದೇ ಪೂಲ್ನಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಚಲಾಯಿಸುವ ಬದಲು ಬಹು PHP-FPM ಚೈಲ್ಡ್ ಪ್ರೊಸೆಸ್ ಪೂಲ್ಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದರಿಂದ ಹಲವಾರು ಅನುಕೂಲಗಳಿವೆ. ಭದ್ರತೆ, ಬೇರ್ಪಡಿಕೆ/ಪ್ರತ್ಯೇಕತೆ ಮತ್ತು ಸಂಪನ್ಮೂಲ ನಿರ್ವಹಣೆ ಕೆಲವು ಪ್ರಮುಖವಾದವುಗಳಾಗಿ ನೆನಪಿಗೆ ಬರುತ್ತವೆ.
ನಿಮ್ಮ ಪ್ರೇರಣೆ ಏನೇ ಇರಲಿ, ಈ ಪೋಸ್ಟ್ ಅದನ್ನು ಮಾಡಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ :-)
ಭಾಗ 1 – ಹೊಸ PHP-FPM ಪೂಲ್ ಅನ್ನು ಹೊಂದಿಸಿ
ಮೊದಲು, ನೀವು PHP-FPM ತನ್ನ ಪೂಲ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಂಡುಹಿಡಿಯಬೇಕು. ಉಬುಂಟು 14.04 ರಲ್ಲಿ, ಇದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ /etc/php5/fpm/pool.d ಆಗಿದೆ. ಬಹುಶಃ ಅಲ್ಲಿ ಈಗಾಗಲೇ www.conf ಎಂಬ ಫೈಲ್ ಇದೆ, ಅದು ಡೀಫಾಲ್ಟ್ ಪೂಲ್ಗಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಹೊಂದಿದೆ. ನೀವು ಮೊದಲು ಆ ಫೈಲ್ ಅನ್ನು ನೋಡದಿದ್ದರೆ, ನೀವು ಅದರ ಮೂಲಕ ಹೋಗಿ ನಿಮ್ಮ ಸೆಟಪ್ಗಾಗಿ ಅದರಲ್ಲಿರುವ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಟ್ವೀಕ್ ಮಾಡಬೇಕು ಏಕೆಂದರೆ ಡೀಫಾಲ್ಟ್ಗಳು ಸಾಕಷ್ಟು ಕಡಿಮೆ ಶಕ್ತಿಯ ಸರ್ವರ್ಗಾಗಿ ಇರುತ್ತವೆ, ಆದರೆ ಇದೀಗ ಅದರ ನಕಲನ್ನು ಮಾಡಿ ಆದ್ದರಿಂದ ನಾವು ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕಾಗಿಲ್ಲ:
ಖಂಡಿತ, "mypool" ಅನ್ನು ನಿಮ್ಮ ಪೂಲ್ ಅನ್ನು ನೀವು ಏನು ಕರೆಯಬೇಕೆಂದು ಬಯಸುತ್ತೀರೋ ಅದನ್ನು ಬದಲಾಯಿಸಿ.
ಈಗ ನ್ಯಾನೋ ಅಥವಾ ನೀವು ಇಷ್ಟಪಡುವ ಯಾವುದೇ ಪಠ್ಯ ಸಂಪಾದಕವನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಉದ್ದೇಶಕ್ಕೆ ಸರಿಹೊಂದುವಂತೆ ಹೊಂದಿಸಿ. ನೀವು ಬಹುಶಃ ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆ ಸಂಖ್ಯೆಗಳನ್ನು ಮತ್ತು ಪೂಲ್ ಯಾವ ಬಳಕೆದಾರ ಮತ್ತು ಗುಂಪಿನ ಅಡಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಬಹುದು, ಆದರೆ ನೀವು ಸಂಪೂರ್ಣವಾಗಿ ಬದಲಾಯಿಸಬೇಕಾದ ಎರಡು ಸೆಟ್ಟಿಂಗ್ಗಳು ಪೂಲ್ನ ಹೆಸರು ಮತ್ತು ಅದು ಕೇಳುತ್ತಿರುವ ಸಾಕೆಟ್, ಇಲ್ಲದಿದ್ದರೆ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪೂಲ್ನೊಂದಿಗೆ ಸಂಘರ್ಷಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ವಿಷಯಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ.
ಪೂಲ್ನ ಹೆಸರು ಫೈಲ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿದೆ, ಚೌಕಾಕಾರದ ಆವರಣಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯಲ್ಪಟ್ಟಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅದು [www] . ಇದನ್ನು ನೀವು ಬಯಸಿದಂತೆ ಬದಲಾಯಿಸಿ; ನೀವು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಹೆಸರಿಸಿದಂತೆಯೇ ನಾನು ಸೂಚಿಸುತ್ತೇನೆ, ಆದ್ದರಿಂದ ಈ ಉದಾಹರಣೆಗಾಗಿ ಅದನ್ನು [mypool] ಗೆ ಬದಲಾಯಿಸಿ. ನೀವು ಅದನ್ನು ಬದಲಾಯಿಸದಿದ್ದರೆ, PHP-FPM ಆ ಹೆಸರಿನೊಂದಿಗೆ ಮೊದಲ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡುತ್ತದೆ ಎಂದು ತೋರುತ್ತದೆ, ಅದು ವಿಷಯಗಳನ್ನು ಮುರಿಯುವ ಸಾಧ್ಯತೆಯಿದೆ.
ನಂತರ ನೀವು ಕೇಳುತ್ತಿರುವ ಸಾಕೆಟ್ ಅಥವಾ ವಿಳಾಸವನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ, ಇದನ್ನು ಆಲಿಸುವ ನಿರ್ದೇಶನದಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, PHP-FPM ಯುನಿಕ್ಸ್ ಸಾಕೆಟ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ ಆದ್ದರಿಂದ ನಿಮ್ಮ ಆಲಿಸುವ ನಿರ್ದೇಶನವು ಬಹುಶಃ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:
ನೀವು ಅದನ್ನು ನಿಮಗೆ ಬೇಕಾದ ಯಾವುದೇ ಮಾನ್ಯ ಹೆಸರಿಗೆ ಬದಲಾಯಿಸಬಹುದು, ಆದರೆ ಮತ್ತೊಮ್ಮೆ, ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಹೆಸರಿಗೆ ಹೋಲುವ ಯಾವುದನ್ನಾದರೂ ಅಂಟಿಸಲು ನಾನು ಸೂಚಿಸುತ್ತೇನೆ, ಉದಾಹರಣೆಗೆ ನೀವು ಅದನ್ನು ಈ ರೀತಿ ಹೊಂದಿಸಬಹುದು:
ಸರಿ, ಫೈಲ್ ಅನ್ನು ಉಳಿಸಿ ಮತ್ತು ಪಠ್ಯ ಸಂಪಾದಕದಿಂದ ನಿರ್ಗಮಿಸಿ.
ಭಾಗ 2 – NGINX ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನವೀಕರಿಸಿ
ಈಗ ನೀವು ಹೊಸ ಪೂಲ್ಗೆ ಬದಲಾಯಿಸಲು ಬಯಸುವ FastCGI ಕಾನ್ಫಿಗರೇಶನ್ನೊಂದಿಗೆ NGINX ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಬೇಕು - ಅಥವಾ ಬದಲಿಗೆ, ಹೊಸ ಸಾಕೆಟ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ.
ಉಬುಂಟು 14.04 ರಲ್ಲಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಇವುಗಳನ್ನು /etc/nginx/sites-available ಅಡಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಬೇರೆಡೆ ಸಹ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ನಿಮ್ಮ ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳು ಎಲ್ಲಿವೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿರಬಹುದು ;-)
ನಿಮ್ಮ ನೆಚ್ಚಿನ ಪಠ್ಯ ಸಂಪಾದಕದಲ್ಲಿ ಸಂಬಂಧಿತ ಸಂರಚನಾ ಕಡತವನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು PHP-FPM ಸಾಕೆಟ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ fastcgi_pass ನಿರ್ದೇಶನವನ್ನು (ಇದು ಸ್ಥಳದ ಸಂದರ್ಭದಲ್ಲಿರಬೇಕು) ನೋಡಿ. ನೀವು ಈ ಮೌಲ್ಯವನ್ನು ಮೊದಲ ಹಂತದ ಅಡಿಯಲ್ಲಿ ಮಾಡಿದ ಹೊಸ PHP-FPM ಪೂಲ್ ಸಂರಚನೆಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಬದಲಾಯಿಸಬೇಕು, ಆದ್ದರಿಂದ ನಮ್ಮ ಉದಾಹರಣೆಯನ್ನು ಮುಂದುವರಿಸುವುದರಿಂದ ನೀವು ಇದನ್ನು ಹೀಗೆ ಬದಲಾಯಿಸುತ್ತೀರಿ:
fastcgi_pass ಯುನಿಕ್ಸ್:/var/run/php5-fpm-mypool.sock;
ನಂತರ ಆ ಫೈಲ್ ಅನ್ನು ಸಹ ಉಳಿಸಿ ಮತ್ತು ಮುಚ್ಚಿ. ನೀವು ಈಗ ಬಹುತೇಕ ಮುಗಿಸಿದ್ದೀರಿ.
ಭಾಗ 3 – PHP-FPM ಮತ್ತು NGINX ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ
ನೀವು ಮಾಡಿದ ಕಾನ್ಫಿಗರೇಶನ್ ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು, PHP-FPM ಮತ್ತು NGINX ಎರಡನ್ನೂ ಮರುಪ್ರಾರಂಭಿಸಿ. restart ಬದಲಿಗೆ ರೀಲೋಡ್ ಮಾಡುವುದು ಸಾಕಾಗಬಹುದು , ಆದರೆ ಯಾವ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಅದು ಸ್ವಲ್ಪ ಹಿಟ್ ಮತ್ತು ಮಿಸ್ ಎಂದು ನಾನು ಕಂಡುಕೊಂಡಿದ್ದೇನೆ. ನಿರ್ದಿಷ್ಟ ಸಂದರ್ಭದಲ್ಲಿ, ಹಳೆಯ PHP-FPM ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಗಳು ತಕ್ಷಣವೇ ಸಾಯಬೇಕೆಂದು ನಾನು ಬಯಸಿದ್ದೆ, ಆದ್ದರಿಂದ PHP-FPM ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿತ್ತು, ಆದರೆ NGINX ಗೆ ಮರುಲೋಡ್ ಸಾಕಾಗಬಹುದು. ಅದನ್ನು ನೀವೇ ಪ್ರಯತ್ನಿಸಿ.
sudo service nginx restart
ಮತ್ತು ಅಷ್ಟೆ, ನೀವು ಮುಗಿಸಿದ್ದೀರಿ. ನೀವು ಎಲ್ಲವನ್ನೂ ಸರಿಯಾಗಿ ಮಾಡಿದ್ದರೆ, ನೀವು ಮಾರ್ಪಡಿಸಿದ ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ ಈಗ ಹೊಸ PHP-FPM ಪೂಲ್ ಅನ್ನು ಬಳಸುತ್ತಿರಬೇಕು ಮತ್ತು ಯಾವುದೇ ಇತರ ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ಗಳೊಂದಿಗೆ ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಬಾರದು.