Miklix

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 ಎಂಬ ಫೈಲ್ ಇದೆ, ಅದು ಡೀಫಾಲ್ಟ್ ಪೂಲ್‌ಗಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಹೊಂದಿದೆ. ನೀವು ಮೊದಲು ಆ ಫೈಲ್ ಅನ್ನು ನೋಡದಿದ್ದರೆ, ನೀವು ಅದರ ಮೂಲಕ ಹೋಗಿ ನಿಮ್ಮ ಸೆಟಪ್‌ಗಾಗಿ ಅದರಲ್ಲಿರುವ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಟ್ವೀಕ್ ಮಾಡಬೇಕು ಏಕೆಂದರೆ ಡೀಫಾಲ್ಟ್‌ಗಳು ಸಾಕಷ್ಟು ಕಡಿಮೆ ಶಕ್ತಿಯ ಸರ್ವರ್‌ಗಾಗಿ ಇರುತ್ತವೆ, ಆದರೆ ಇದೀಗ ಅದರ ನಕಲನ್ನು ಮಾಡಿ ಆದ್ದರಿಂದ ನಾವು ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕಾಗಿಲ್ಲ:

sudo cp www.conf mypool.conf

ಖಂಡಿತ, "mypool" ಅನ್ನು ನಿಮ್ಮ ಪೂಲ್ ಅನ್ನು ನೀವು ಏನು ಕರೆಯಬೇಕೆಂದು ಬಯಸುತ್ತೀರೋ ಅದನ್ನು ಬದಲಾಯಿಸಿ.

ಈಗ ನ್ಯಾನೋ ಅಥವಾ ನೀವು ಇಷ್ಟಪಡುವ ಯಾವುದೇ ಪಠ್ಯ ಸಂಪಾದಕವನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಉದ್ದೇಶಕ್ಕೆ ಸರಿಹೊಂದುವಂತೆ ಹೊಂದಿಸಿ. ನೀವು ಬಹುಶಃ ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆ ಸಂಖ್ಯೆಗಳನ್ನು ಮತ್ತು ಪೂಲ್ ಯಾವ ಬಳಕೆದಾರ ಮತ್ತು ಗುಂಪಿನ ಅಡಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಬಹುದು, ಆದರೆ ನೀವು ಸಂಪೂರ್ಣವಾಗಿ ಬದಲಾಯಿಸಬೇಕಾದ ಎರಡು ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಪೂಲ್‌ನ ಹೆಸರು ಮತ್ತು ಅದು ಕೇಳುತ್ತಿರುವ ಸಾಕೆಟ್, ಇಲ್ಲದಿದ್ದರೆ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪೂಲ್‌ನೊಂದಿಗೆ ಸಂಘರ್ಷಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ವಿಷಯಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ.

ಪೂಲ್‌ನ ಹೆಸರು ಫೈಲ್‌ನ ಮೇಲ್ಭಾಗದಲ್ಲಿದೆ, ಚೌಕಾಕಾರದ ಆವರಣಗಳಲ್ಲಿ ಸುತ್ತುವರಿಯಲ್ಪಟ್ಟಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅದು [www] . ಇದನ್ನು ನೀವು ಬಯಸಿದಂತೆ ಬದಲಾಯಿಸಿ; ನೀವು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಹೆಸರಿಸಿದಂತೆಯೇ ನಾನು ಸೂಚಿಸುತ್ತೇನೆ, ಆದ್ದರಿಂದ ಈ ಉದಾಹರಣೆಗಾಗಿ ಅದನ್ನು [mypool] ಗೆ ಬದಲಾಯಿಸಿ. ನೀವು ಅದನ್ನು ಬದಲಾಯಿಸದಿದ್ದರೆ, PHP-FPM ಆ ಹೆಸರಿನೊಂದಿಗೆ ಮೊದಲ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಮಾತ್ರ ಲೋಡ್ ಮಾಡುತ್ತದೆ ಎಂದು ತೋರುತ್ತದೆ, ಅದು ವಿಷಯಗಳನ್ನು ಮುರಿಯುವ ಸಾಧ್ಯತೆಯಿದೆ.

ನಂತರ ನೀವು ಕೇಳುತ್ತಿರುವ ಸಾಕೆಟ್ ಅಥವಾ ವಿಳಾಸವನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ, ಇದನ್ನು ಆಲಿಸುವ ನಿರ್ದೇಶನದಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, PHP-FPM ಯುನಿಕ್ಸ್ ಸಾಕೆಟ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ ಆದ್ದರಿಂದ ನಿಮ್ಮ ಆಲಿಸುವ ನಿರ್ದೇಶನವು ಬಹುಶಃ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

listen = /var/run/php5-fpm.sock

ನೀವು ಅದನ್ನು ನಿಮಗೆ ಬೇಕಾದ ಯಾವುದೇ ಮಾನ್ಯ ಹೆಸರಿಗೆ ಬದಲಾಯಿಸಬಹುದು, ಆದರೆ ಮತ್ತೊಮ್ಮೆ, ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಹೆಸರಿಗೆ ಹೋಲುವ ಯಾವುದನ್ನಾದರೂ ಅಂಟಿಸಲು ನಾನು ಸೂಚಿಸುತ್ತೇನೆ, ಉದಾಹರಣೆಗೆ ನೀವು ಅದನ್ನು ಈ ರೀತಿ ಹೊಂದಿಸಬಹುದು:

listen = /var/run/php5-fpm-mypool.sock

ಸರಿ, ಫೈಲ್ ಅನ್ನು ಉಳಿಸಿ ಮತ್ತು ಪಠ್ಯ ಸಂಪಾದಕದಿಂದ ನಿರ್ಗಮಿಸಿ.


ಭಾಗ 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 php5-fpm restart
sudo service nginx restart

ಮತ್ತು ಅಷ್ಟೆ, ನೀವು ಮುಗಿಸಿದ್ದೀರಿ. ನೀವು ಎಲ್ಲವನ್ನೂ ಸರಿಯಾಗಿ ಮಾಡಿದ್ದರೆ, ನೀವು ಮಾರ್ಪಡಿಸಿದ ವರ್ಚುವಲ್ ಹೋಸ್ಟ್ ಈಗ ಹೊಸ PHP-FPM ಪೂಲ್ ಅನ್ನು ಬಳಸುತ್ತಿರಬೇಕು ಮತ್ತು ಯಾವುದೇ ಇತರ ವರ್ಚುವಲ್ ಹೋಸ್ಟ್‌ಗಳೊಂದಿಗೆ ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಬಾರದು.

ಬ್ಲೂಸ್ಕೈನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿಫೇಸ್‌ಬುಕ್‌ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿTumblr ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿX ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿLinkedIn ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಿPinterest ನಲ್ಲಿ ಪಿನ್ ಮಾಡಿ

Mikkel Bang Christensen

ಲೇಖಕರ ಬಗ್ಗೆ

Mikkel Bang Christensen
ಮಿಕೆಲ್ miklix.com ನ ಸೃಷ್ಟಿಕರ್ತ ಮತ್ತು ಮಾಲೀಕರು. ಅವರು ವೃತ್ತಿಪರ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮರ್/ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್ ಆಗಿ 20 ವರ್ಷಗಳಿಗೂ ಹೆಚ್ಚು ಅನುಭವ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಪ್ರಸ್ತುತ ದೊಡ್ಡ ಯುರೋಪಿಯನ್ ಐಟಿ ಕಾರ್ಪೊರೇಷನ್‌ನಲ್ಲಿ ಪೂರ್ಣ ಸಮಯದ ಉದ್ಯೋಗಿಯಾಗಿದ್ದಾರೆ. ಬ್ಲಾಗಿಂಗ್ ಮಾಡದಿರುವಾಗ, ಅವರು ತಮ್ಮ ಬಿಡುವಿನ ವೇಳೆಯನ್ನು ವ್ಯಾಪಕವಾದ ಆಸಕ್ತಿಗಳು, ಹವ್ಯಾಸಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಗಳಲ್ಲಿ ಕಳೆಯುತ್ತಾರೆ, ಇದು ಸ್ವಲ್ಪ ಮಟ್ಟಿಗೆ ಈ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಿವಿಧ ವಿಷಯಗಳಲ್ಲಿ ಪ್ರತಿಫಲಿಸಬಹುದು.