Nginx 配置与常用命令速查手册

发布于:2025-03-04 ⋅ 阅读:(11) ⋅ 点赞:(0)

Nginx 配置文件结构

Linux 中 Nginx 的配置文件:

通常位于 /etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf

Nginx 采用模块化设计,主要分为以下部分:

1. 全局块

配置与服务器整体相关的参数,如工作进程数、日志路径等。


2. Events 块

配置与网络连接相关的参数。

events {
    worker_connections 1024; # 每个工作进程的最大连接数
}

3. Http 块

配置 HTTP 服务器相关的参数,如虚拟主机、反向代理、负载均衡等。包括多个 server 块。

<NGINX>


http {
    include mime.types; # 包含 MIME 类型配置文件
    default_type application/octet-stream; # 默认文件类型
    access_log /var/log/nginx/access.log; # 访问日志路径

    # 定义一个虚拟主机
    server {
        listen 80; # 监听端口
        server_name example.com; # 域名

        location / {
            root /var/www/html; # 静态资源路径
            index index.html; # 默认首页文件
        }
    }
}

4. Server 块

定义虚拟主机(每个 server 块对应一个网站),如域名、端口、根目录等。

server {
    # 使用 SSL 证书启用 HTTPS:
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/secure.crt;  # SSL 证书
    ssl_certificate_key /etc/nginx/ssl/secure.key;  # SSL 证书密钥
    listen 80;	// 监听端口
    server_name example.com; # 域名

    location / {
        root /var/www/html; # 网站根目录
        index index.html; # 默认首页
    }
}

将静态文件放到 /var/www/html 目录,访问 http://example.com 即可。


5. Location 块

定义请求 URL 路径的匹配规则和处理逻辑。

location /images/ {
    root /var/www; # 访问 /images/ 时,文件路径为 /var/www/images/
}

常用配置示例

1. 静态资源服务

server {
    listen 80;
    server_name example.com;

    location /static/ {
        root /var/www;
    }
}

2. 反向代理

server {
    listen 8081;
    server_name localhost;

    location / {
        proxy_pass http://localhost:8080; # 将请求转发到后端服务器 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

proxy_pass 指令将浏览器请求 localhost:8081 转发到 http://localhost:8080

浏览器输入的是 localhost:8081 ,后台实际访问  http://localhost:8080


3. 负载均衡

upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend; # 将请求转发到后端服务器
    }
}

4. HTTPS 配置

server {
    listen 443 ssl;
    server_name example.com;

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

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

5. URL 重写

location /user/ {
    rewrite ^/user/(.*)$ /profile?user=$1 break;
}

一、下载Nginx

 Nginx 作用: 

  • 发布静态网站
  • 实现反向代理
  • 实现负载均衡
  • 缓存加速
  • HTTPS 配置

负载均衡:当同时有多个用户访问我们服务器的时候,为了减少服务器的压力,我们需要将用户引入服务器集群中较轻压力的服务器,分担较重压力服务器的负担。

反向代理:反向代理就像一个 “中间人”,它站在 客户端后端服务器 之间,负责接收客户端的请求,然后将请求转发给后端服务器,并将服务器的响应返回给客户端。

官网:https://nginx.org/

正向代理

反向代理

为客户端服务(隐藏客户端)

为服务器服务(隐藏服务器)

客户端知道代理的存在

客户端不知道代理的存在

常用于访问外部资源(如 VPN)

常用于负载均衡和缓存加速

  • 反向代理:客户端不知道后端服务器是谁,反向代理隐藏了服务器。
  • 正向代理:服务器不知道客户端是谁,正向代理隐藏了客户端(比如通过 VPN 访问国外社交网站)。

二、Nginx 注意事项

注意:开发中遇到的一个小坑, nginx 用命令重新加载有时候执行 nginx -s reload会不生效,会启动多个后台进程,遇到此情况用任务管理器打开关掉重新启动就好。


三、Nginx 常用命令

1、启动

start nginx

2、重新加载

nginx -s reload

3、停止

nginx -s stop

4、指定配置文件启动

nginx -c /path/to/nginx.conf

5、查看 Nginx 进程状态

ps aux | grep nginx

6、测试修改配置文件后语法是否正确

nginx -t

如果 Nginx 是通过 systemd 管理的,可以使用以下命令替代:

启动:systemctl start nginx
停止:systemctl stop nginx
重新加载:systemctl reload nginx
查看状态:systemctl status nginx

技术水平有限,如有错误,欢迎指正!