终极 Nginx 配置指南(全网最详细)

Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3 代理服务器。由于其高效的功能和灵活的配置,Nginx 被广泛用于网页服务器、负载均衡、动态内容处理等场景。本文将详细介绍 Nginx 的配置,包括常用的配置示例。

1. 基本安装

在 Linux 系统上,可以通过包管理工具安装 Nginx。例如,在 Ubuntu 上,可以使用以下命令安装:

sudo apt update
sudo apt install nginx

安装完成后,可以通过以下命令启动和停止 Nginx:

sudo systemctl start nginx
sudo systemctl stop nginx

2. 配置文件结构

Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf。文件结构如下:

worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   404  /404.html;
        location = /404.html {
            internal;
        }
    }
}

3. 配置 Virtual Host

Nginx 允许你在同一个服务器上配置多个虚拟主机。以下是一个配置示例,用于配置两个虚拟主机:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/example.com;
            index index.html;
        }
    }

    server {
        listen 80;
        server_name example.net;

        location / {
            root /var/www/example.net;
            index index.html;
        }
    }
}

4. 配置反向代理

Nginx 作为反向代理的配置非常简单,以下是一个示例,将请求代理到后端的应用服务器(如 Node.js):

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;  # 应用服务器地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

5. SSL 配置

为了提高网站的安全性,建议使用 SSL。使用 Let’s Encrypt 获取免费 SSL 证书后,可以按如下方式配置:

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;  # 强制重定向到 HTTPS
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        root /var/www/example.com;
        index index.html;
    }
}

6. gzip 压缩

为了提高传输效率,可以开启 gzip 压缩:

http {
    gzip on;
    gzip_types text/plain application/json application/javascript text/css application/xml;
    gzip_min_length 1000;
}

7. 日志配置

记录 Nginx 的访问日志和错误日志,可以帮助你监控网站状态。配置示例如下:

http {
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
}

8. 测试与重启

配置文件修改后,应使用以下命令测试配置是否正确:

sudo nginx -t

如果没有错误,可以重启 Nginx 以应用新配置:

sudo systemctl restart nginx

结论

Nginx 的配置非常灵活,适合多种不同的场景。通过上述示例,你可以轻松地搭建出一个高效的 Web 服务器。如果你希望更深入了解 Nginx,建议查阅其官方文档,了解更多高级配置和优化技巧。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部