1. NGINX 基础配置
1.1 NGINX 安装
在 Linux 系统上安装 NGINX 可以使用包管理工具,例如在 Ubuntu 上:
sudo apt update
sudo apt install nginx
安装完成后,启动 NGINX 服务:
sudo systemctl start nginx
1.2 NGINX 基本配置文件
NGINX 的主配置文件通常位于 /etc/nginx/nginx.conf
。以下是一个简化的 NGINX 配置示例:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20M;
client_body_buffer_size 128k;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
server {
listen 80;
error_page 500 502 503 504 /50x.html;
location / {
root html;
index index.html index.htm;
}
}
}
1.3 常用配置项说明
- worker_processes: 配置 NGINX 处理请求的工作进程数。
- worker_connections: 每个工作进程可以处理的最大连接数。
- client_max_body_size: 限制客户端请求体的最大大小,防止过大的请求导致服务器崩溃。
- gzip: 启用 Gzip 压缩,提高页面加载速度。
2. SSL 配置
2.1 配置 HTTPS
为了使 NGINX 支持 HTTPS,需要配置 SSL 证书和密钥。以下是一个 HTTPS 配置示例:
server {
listen 443 ssl;
ssl_certificate /etc/nginx/certs/ssl_certificate.crt;
ssl_certificate_key /etc/nginx/certs/ssl_certificate.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
2.2 SSL 配置说明
- ssl_certificate: 指定 SSL 证书文件路径。
- ssl_certificate_key: 指定 SSL 证书密钥文件路径。
- ssl_ciphers: 配置使用的加密算法套件。
- ssl_protocols: 指定支持的 SSL/TLS 协议版本。
3. 反向代理配置
NGINX 常用于反向代理,将客户端请求转发到后端服务器。以下是一个简单的反向代理配置:
server {
listen 80;
location / {
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_pass http://backend_server:8080;
}
}
3.1 反向代理配置说明
- proxy_set_header: 设置代理请求头信息,传递客户端的真实 IP 地址和主机信息。
- proxy_pass: 指定后端服务器的地址和端口,转发请求。
4. NGINX 与 Docker 配合使用
4.1 使用 Docker Compose 启动 NGINX
以下是一个使用 Docker Compose 启动 NGINX 容器的配置示例:
version: "3.6"
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "8880:80" # HTTP
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
restart: always
logging:
driver: json-file
options:
max-size: 10m
max-file: '5'
4.2 配置说明
- ports: 将容器内的 80 端口映射到主机的 8880 端口。
- volumes: 将本地的
nginx.conf
文件挂载到容器中的/etc/nginx/nginx.conf
,使容器使用自定义配置。 - restart: 设置容器自动重启策略。
- logging: 配置容器日志文件的大小和数量,防止日志占用过多磁盘空间。
4.3 启动 NGINX 容器
在 docker-compose.yml
文件所在目录,运行以下命令启动 NGINX 容器:
docker-compose up -d
容器启动后,可以通过访问 http://localhost:8880
查看 NGINX 是否正常运行。
标签:ssl,配置,NGINX,proxy,nginx,gzip From: https://www.cnblogs.com/daikaiqiang/p/18382221