温馨提示×

linux nginx怎样配置

小樊
52
2026-10-07 21:17:22
栏目: 智能运维

下面给你一个从零开始的 Linux + Nginx 配置指南,涵盖安装、基础配置、常见场景,适合新手也适合实战。


一、安装 Nginx(Linux)

1️⃣ Ubuntu / Debian

sudo apt update
sudo apt install nginx -y

2️⃣ CentOS / Rocky / Alma

sudo yum install epel-release -y
sudo yum install nginx -y

3️⃣ 启动并设置开机自启

sudo systemctl start nginx
sudo systemctl enable nginx

浏览器访问服务器 IP,看到 Welcome to nginx 即成功。


二、Nginx 配置文件结构

/etc/nginx/
├── nginx.conf          # 主配置文件
├── conf.d/             # 自定义配置(推荐)
└── sites-enabled/      # 站点配置(Ubuntu)

✅ 推荐做法:
每个网站一个配置文件,放在 conf.d/


三、最基础的网站配置(静态站点)

示例:配置 example.com

sudo vim /etc/nginx/conf.d/example.conf
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

创建目录:

sudo mkdir -p /var/www/example
echo "Hello Nginx" | sudo tee /var/www/example/index.html

测试并重载:

sudo nginx -t
sudo systemctl reload nginx

四、反向代理(最常见用法)

代理到本地 8080 端口(如 Java / Node)

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

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

五、HTTPS(SSL)配置(强烈推荐)

1️⃣ 使用 Let’s Encrypt 免费证书

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

Certbot 会自动修改 Nginx 配置。

2️⃣ 手动 SSL 示例

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/example.crt;
    ssl_certificate_key /etc/nginx/ssl/example.key;

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

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

六、常用优化 & 安全配置

1️⃣ 隐藏 Nginx 版本

server_tokens off;

2️⃣ 开启 Gzip

gzip on;
gzip_types text/css application/javascript image/svg+xml;

3️⃣ 限制访问

location /admin {
    allow 192.168.1.0/24;
    deny all;
}

七、常见问题排查

❌ 403 Forbidden

  • 目录无权限
  • index 文件不存在

❌ 502 Bad Gateway

  • 后端服务未启动
  • proxy_pass 地址错误

查看错误日志

tail -f /var/log/nginx/error.log

八、你可以告诉我

如果你愿意,我可以直接帮你写配置文件,只需要告诉我:

  1. 系统(Ubuntu / CentOS?)
  2. 用途(静态网站 / 反向代理 / API / 前端项目?)
  3. 是否要 HTTPS
  4. 域名或端口

我可以给你可直接复制用的完整配置。

0 踩