Tôi có nginx và php-fpm đang chạy trên Docker. Khi sử dụng tên máy chủ của hệ thống Docker của tôi (docker1.freekb.net), trang phpinfo.php sẽ hiển thị trong trình duyệt, do đó tôi biết rằng mình đã cấu hình đúng nginx và php-fpm để phục vụ các trang PHP. Đây là khối máy chủ trong /etc/nginx/conf.d/default.conf. Yêu cầu từ nginx trên cổng 80 được chuyển tiếp lên PHP trên cổng 9000.
người phục vụ {
nghe 80;
server_name stage.freekb.net;
gốc /var/www/giai đoạn;
chỉ mục index.html phpinfo.php;
địa điểm / {
try_files $uri $uri/ /index.html;
}
vị trí ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index phpinfo.php;
bao gồm fastcgi_params;
}
}
Tôi đã thiết lập HAProxy để chuyển tiếp yêu cầu lên nginx. Đây là khối nghe của tôi trong /etc/haproxy/haproxy.cfg. Khi tôi tới http://haproxy.freekb.net/index.html, trang chào mừng nginx được hiển thị, do đó tôi biết rằng HAProxy có thể chuyển tiếp các yêu cầu lên nginx.
Tuy nhiên, khi tôi đi đến http://haproxy.freekb.net/phpinfo.php, phpinfo.php được tải xuống PC cục bộ của tôi. Tôi nghi ngờ điều này có nghĩa là có điều gì đó không ổn với fastcgi. Tôi không chắc những gì phải thay đổi để các trang PHP được hiển thị trong trình duyệt khi sử dụng HAProxy.
nghe nginx
ràng buộc *:80
chế độ tcp
thăng bằng vòng tròn
máy chủ nginx1 docker1.freekb.net:80 kiểm tra