linux

LNMP中Nginx如何设置

小樊
47
2025-09-26 23:28:36
栏目: 编程语言

LNMP环境中Nginx的核心配置指南

在LNMP(Linux+Nginx+MySQL+PHP)架构中,Nginx作为Web服务器,主要负责处理HTTP请求、转发PHP请求至PHP-FPM、提供静态文件服务等。以下是Nginx的具体配置步骤及关键说明:

1. 安装Nginx

根据Linux发行版选择对应命令安装:

安装完成后,启动Nginx并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

通过访问服务器IP地址,确认Nginx默认页面显示正常。

2. 配置Nginx虚拟主机(核心步骤)

虚拟主机用于托管多个域名/网站。Nginx通过sites-available(存放配置文件)和sites-enabled(存放启用配置的符号链接)目录管理虚拟主机。

(1)创建虚拟主机配置文件

以域名example.com为例,创建配置文件:

sudo nano /etc/nginx/sites-available/example.com

写入以下基础配置(需根据实际情况调整):

server {
    listen 80;
    server_name example.com www.example.com;  # 域名(可多个,空格分隔)
    root /var/www/example.com;                # 网站根目录(需手动创建)
    index index.php index.html index.htm;     # 默认索引文件

    # 静态文件处理:尝试匹配文件,不存在则返回404
    location / {
        try_files $uri $uri/ =404;
    }

    # PHP处理:转发至PHP-FPM(关键配置)
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;    # 包含FastCGI参数
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;  # PHP-FPM socket路径(需与PHP版本匹配)
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  # 传递脚本路径
        include fastcgi_params;               # 包含通用FastCGI参数
    }

    # 禁止访问.htaccess等敏感文件
    location ~ /\.ht {
        deny all;
    }
}

说明

(2)启用虚拟主机

创建符号链接,将配置文件链接至sites-enabled目录:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
(3)测试并重载配置

测试配置文件语法(无错误则继续):

sudo nginx -t

重载Nginx以应用更改:

sudo systemctl reload nginx

3. 配置PHP-FPM联动

Nginx本身不处理PHP代码,需通过PHP-FPM(FastCGI进程管理器)执行PHP脚本。

(1)安装PHP-FPM及扩展
(2)调整PHP-FPM配置

编辑PHP-FPM的pool配置文件(通常位于/etc/php/8.2/fpm/pool.d/www.conf):

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

找到listen指令,确保与Nginx中的fastcgi_pass路径一致(如unix:/var/run/php/php8.2-fpm.sock)。

(3)重启PHP-FPM
sudo systemctl restart php8.2-fpm
sudo systemctl enable php8.2-fpm

4. 配置MySQL数据库

Nginx需连接MySQL存储动态数据(如WordPress、Laravel等)。

(1)安装MySQL
(2)运行安全脚本
sudo mysql_secure_installation

按提示设置root密码、移除匿名用户、禁止root远程登录等。

(3)创建数据库及用户

登录MySQL:

sudo mysql -u root -p

执行以下SQL命令:

CREATE DATABASE example_db;                  -- 创建数据库
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'StrongPassword123';  -- 创建用户
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';        -- 授权
FLUSH PRIVILEGES;                            -- 刷新权限
EXIT;

5. 关键优化与安全配置

(1)设置防火墙

允许HTTP(80)和HTTPS(443)流量(以UFW为例):

sudo ufw allow 'Nginx Full'
sudo ufw enable
(2)配置HTTPS(可选但推荐)

使用Let’s Encrypt免费获取SSL证书:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

按提示完成证书安装,Nginx会自动配置HTTPS重定向。

(3)性能优化

6. 验证配置

通过以上步骤,即可在LNMP环境中完成Nginx的基础配置。根据实际需求,可进一步调整缓存策略、负载均衡、反向代理等功能。

0
看了该问题的人还看了