Nginx常用配置及和基本功能详解

云计算

Nginx常用配置及和基本功能详解

2024-09-22 01:14


Nginx详解:高性能Web服务器与反向代理的配置与功能 Nginx是一款高性能、开源的Web服务器和反向代理服务器,

                                            




Nginx详解:高性能Web服务器与反向代理的配置与功能

Nginx是一款高性能开源的Web服务器和反向代理服务器,因其轻量级高可靠性高并发处理能力而备受欢迎。下面将详细介绍Nginx的常用配置和基本功能。

一、静态文件服务

Nginx可以高效地提供静态文件服务,通过配置服务器的根目录,将静态文件直接传输给客户端,提升文件传输速度。

配置示例:

server {
    listen       80;
    server_name  example.com;

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

解释:

  • <span style="color: red;">listen 80;</span>:监听80端口。
  • <span style="color: red;">server_name example.com;</span>:定义服务器名称。
  • <span style="color: red;">location /</span>:匹配所有请求。
  • <span style="color: red;">root /var/www/html;</span>:指定静态文件的根目录。
  • <span style="color: red;">index index.html index.htm;</span>:设置默认索引文件。

二、反向代理

Nginx可以作为反向代理服务器,将客户端请求转发给后端的应用服务器,实现负载均衡和请求分发。

配置示例:

upstream backend {
    server backend1.example.com weight=5;
    server backend2.example.com;
}

server {
    listen       80;
    server_name  example.com;

    location / {
        proxy_pass http://backend;
    }
}

解释:

  • <span style="color: red;">upstream backend</span>:定义一个名为 backend的上游服务器组。
  • <span style="color: red;">server backend1.example.com weight=5;</span>:添加后端服务器,设置权重为5。
  • <span style="color: red;">proxy_pass http://backend;</span>:将请求转发给上游服务器组 backend

三、虚拟主机

Nginx支持配置虚拟主机,在同一台服务器上运行多个网站。

配置示例:

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

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

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

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

解释:

  • 通过定义多个 <span style="color: red;">server</span>块,根据不同的 <span style="color: red;">server_name</span>,为不同的域名配置不同的站点。

四、SSL/TLS支持

Nginx可以配置SSL/TLS证书,实现HTTPS安全连接,对传输的数据进行加密

配置示例:

server {
    listen       443 ssl;
    server_name  example.com;

    ssl_certificate      /etc/ssl/certs/example.com.crt;
    ssl_certificate_key  /etc/ssl/private/example.com.key;

    ssl_protocols        TLSv1.2 TLSv1.3;
    ssl_ciphers          HIGH:!aNULL:!MD5;

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

解释:

  • <span style="color: red;">listen 443 ssl;</span>:监听443端口,并启用SSL。
  • <span style="color: red;">ssl_certificate</span>和 <span style="color: red;">ssl_certificate_key</span>:指定证书和私钥文件路径。
  • <span style="color: red;">ssl_protocols</span>:启用的TLS协议版本。
  • <span style="color: red;">ssl_ciphers</span>:配置加密套件。

五、缓存配置

通过配置缓存,Nginx可以提高对静态和动态内容的访问速度。

配置示例:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

server {
    listen       80;
    server_name  example.com;

    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404      1m;
    }
}

解释:

  • <span style="color: red;">proxy_cache_path</span>:定义缓存路径和参数。
  • <span style="color: red;">proxy_cache my_cache;</span>:启用名为 my_cache的缓存区域。
  • <span style="color: red;">proxy_cache_valid</span>:设置不同HTTP状态码的缓存时间。

六、响应内容压缩

Nginx支持对响应内容进行gzip压缩,减少数据传输量。

配置示例:

gzip              on;
gzip_types        text/plain application/javascript application/json text/css;
gzip_min_length   1024;
gzip_comp_level   6;

解释:

  • <span style="color: red;">gzip on;</span>:启用gzip压缩。
  • <span style="color: red;">gzip_types</span>:指定需要压缩的MIME类型。
  • <span style="color: red;">gzip_min_length</span>:设置启用压缩的最小响应长度。
  • <span style="color: red;">gzip_comp_level</span>:压缩级别,范围1-9。

七、访问控制

Nginx可以通过IP地址等条件进行访问控制,提高网站的安全性。

配置示例:

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

解释:

© 蓝易云.