基于 Nginx 和 PHP-FPM 配置 HTTPS 安全网站的高效编程实践
在当今互联网时代,网站的安全性已经成为不可忽视的重要议题。HTTPS(HyperText Transfer Protocol Secure)作为一种安全的通信协议,通过加密传输数据,有效保护用户隐私和防止数据泄露。本文将详细介绍如何基于 Nginx 和 PHP-FPM 配置一个高效的 HTTPS 安全网站,并提供一些实用的编程技巧。
一、准备工作
环境搭建
操作系统
:建议使用 Linux 发行版,如 Ubuntu 20.04。
软件安装
:
Nginx:高性能的 Web 服务器。
PHP-FPM:FastCGI 进程管理器,用于处理 PHP 请求。
OpenSSL:用于生成 SSL 证书。
安装命令示例:
sudo apt update
sudo apt install nginx php-fpm openssl
生成 SSL 证书
使用 OpenSSL 生成自签名的 SSL 证书(生产环境建议使用 Let’s Encrypt 等权威机构颁发的证书):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
二、配置 Nginx
编辑 Nginx 配置文件
打开 Nginx 的配置文件,通常位于
/etc/nginx/sites-available/default
。
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
重启 Nginx
使配置生效:
sudo systemctl restart nginx
三、配置 PHP-FPM
编辑 PHP-FPM 配置文件
打开 PHP-FPM 的配置文件,通常位于
/etc/php/7.4/fpm/pool.d/www.conf
。
优化以下参数:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 35
重启 PHP-FPM
使配置生效:
sudo systemctl restart php7.4-fpm
四、编程实践
高效代码编写
代码规范
:遵循 PSR 标准,确保代码可读性和可维护性。
性能优化
:使用 Opcache 等缓存机制,减少重复编译。
示例代码: