nginx.conf添加php支持和其他

本文介绍了如何在Nginx配置文件nginx.conf中添加PHP支持,通过启用fastcgi_param来实现,并强调了备份配置文件的重要性。此外,还说明了如何添加HTTPS支持,通过复制备份文件中的相关配置到正确位置,以及确保php-fpm服务运行,以实现平滑重启Nginx。

ENV:

[root@lnmp ~]# nginx -v
nginx version: nginx/1.16.0
[root@lnmp ~]# php -v
PHP 7.4.7 (cli) (built: Jul 20 2020 15:12:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

nginx.conf 文件,主要三部分组成
 
http {
    server{}
    server{}
}
 
一个nginx.conf对应一个http,代表http请求
一个http可以包含多个server区块,每个区块就是一个项目(网站)=>虚拟主机

不同的server区块指定一台电脑不同目录为不同的站点,实现一台电脑运行不同的多个网站

一:默认内容

对操作文件进行备份,防止出错

[root@lnmp Downloads]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
[root@lnmp Downloads]# cd /usr/local/nginx/conf/

删减无用内容

[root@lnmp conf]# grep -Ev '#|^$' nginx.conf.bak > nginx.conf

最终内容及注释

[root@lnmp conf]# cat nginx.conf
worker_processe
你当前位于 Nginx 的配置目录: ``` /opt/at606-nginx/conf/ ``` 这个路径是你在编译 Nginx 时通过 `--conf-path=...` 指定的主配置文件存放位置。现在我们来 **详细分析这些文件的作用、如何管理配置、以及最佳实践建议**。 --- ## 📁 当前目录中各文件说明 | 文件名 | 类型 | 作用 | |--------|------|------| | `nginx.conf` | ✅ 主配置文件(正在使用) | Nginx 启动时加载的核心配置,定义了 server 块、监听端口、站点等 | | `nginx.conf.default` | 备份 | 编译时自带的默认配置模板,可用于参考或恢复 | | `mime.types` | ✅ MIME 类型映射表 | 定义文件扩展名与 Content-Type 的对应关系(如 `.css → text/css`) | | `mime.types.default` | 备份 | 原始版本,不要修改它 | | `fastcgi.conf`, `fastcgi_params` | FastCGI 配置 | 用于 PHP 等后端通信;`fastcgi.conf` 支持 `$document_root` | | `fastcgi.conf.default`, `fastcgi_params.default` | 备份 | 默认模板 | | `scgi_params`, `uwsgi_params` | SCGI/uWSGI 参数 | 其他网关协议支持(较少用) | | `koi-utf`, `koi-win`, `win-utf` | 字符编码转换表 | 内部使用,一般无需关心 | | `bak.conf` | 自定义备份 | 很可能是你自己保留的历史配置 | > ✅ 当前生效的是:`nginx.conf` --- ## ✅ 如何查看当前配置是否正确? ```bash # 测试语法是否正确 sudo /opt/at606-nginx/sbin/nginx -p /opt/at606-nginx -t ``` 输出示例: ``` nginx: the configuration file /opt/at606-nginx/conf/nginx.conf syntax is ok nginx: configuration file /opt/at606-nginx/conf/nginx.conf test is successful ``` 📌 如果报错,请根据提示修复 `nginx.conf`。 --- ## ✅ 推荐的配置结构(模块化组织) 为了便于维护,推荐将配置拆分为多个子文件,放在 `/opt/at606-nginx/conf/extra/` 目录下。 ### 步骤 1:创建 extra 子目录 ```bash sudo mkdir /opt/at606-nginx/conf/extra ``` ### 步骤 2:拆分常用配置 #### 示例:`/opt/at606-nginx/conf/extra/http-server-default.conf` ```nginx server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } # 错误页面 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } ``` #### 示例:支持 HTTPS(需证书) ```nginx # /opt/at606-nginx/conf/extra/http-server-https.conf server { listen 443 ssl http2; server_name example.com; ssl_certificate /opt/at606-nginx/certs/example.com.crt; ssl_certificate_key /opt/at606-nginx/certs/example.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root html; index index.html index.htm; } } ``` ### 步骤 3:修改主 `nginx.conf` ```nginx worker_processes auto; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 加载额外配置 include extra/http-server-default.conf; # include extra/http-server-https.conf; # include extra/http-php.conf; # 其他全局设置... } ``` 这样就可以实现 **按功能启用/禁用服务模块**。 --- ## ✅ 配置管理最佳实践 | 实践 | 说明 | |------|------| | ✅ 保留 `.default` 文件 | 不要删除原始默认配置,用于对比恢复 | | ✅ 使用 `include` 拆分配置 | 提高可读性可维护性 | | ✅ 经常备份 `nginx.conf` | 修改前复制为 `bak.conf` 或时间戳命名 | | ✅ 使用版本控制(Git) | 尤其适用于生产环境:<br>`git init && git add . && git commit -m "init nginx config"` | | ✅ 添加注释说明 | 在关键块添加作者、用途、日期等信息 | --- ## ✅ 快速备份当前配置 ```bash # 打包整个 conf 目录 sudo tar -czf /root/nginx-conf-backup-$(date +%F).tar.gz -C /opt/at606-nginx conf/ # 查看备份 ls /root/ ``` --- ## ✅ 如何切换不同配置进行测试? 你可以利用软链接动态切换配置: ```bash # 创建两个配置版本 sudo cp nginx.conf nginx.conf.site-a sudo cp nginx.conf nginx.conf.site-b # 创建指向当前配置的符号链接 sudo ln -sf /opt/at606-nginx/conf/nginx.conf.site-a /opt/at606-nginx/conf/nginx.conf.current # 修改 nginx.conf 指向新链接 sudo sed -i 's|nginx.conf|nginx.conf.current|' /lib/systemd/system/at606-nginx.service sudo systemctl daemon-reload ``` 然后只需更改软链接即可“热切”配置。 --- ## ✅ 查看当前运行的配置内容 有时你想知道实际加载的是什么内容(尤其是 include 展开后),可以用: ```bash # 显示完整解析后的配置(需要调试版 nginxnginx -T ``` 但你的定制版可能未开启该功能。替代方案是手动拼接: ```bash echo "=== Final Effective Config ===" cat /opt/at606-nginx/conf/nginx.conf grep -r "include extra/" /opt/at606-nginx/conf/nginx.conf ``` --- ## ✅ 日志位置提醒 虽然不在 `conf/` 目录下,但相关日志对调试很重要: ```bash # 访问日志 tail -f /opt/at606-nginx/logs/access.log # 错误日志(最关键) tail -f /opt/at606-nginx/logs/error.log # PID 文件 cat /opt/at606-nginx/logs/nginx.pid ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值