目录
[1. 常用配置](#1. 常用配置)
[2. 高级配置](#2. 高级配置)
1. 常用配置
基本设置
javascript
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
- user nginx;: 指定Nginx worker进程的运行用户。
- worker_processes auto;: 自动设置worker进程的数量。
- error_log /var/log/nginx/error.log warn;: 错误日志的路径和日志级别。
- pid /var/run/nginx.pid;: Nginx主进程的PID文件路径。
HTTP配置
javascript
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
- include /etc/nginx/mime.types;: 引入MIME类型定义文件。
- default_type application/octet-stream;: 默认的MIME类型。
- log_format main ...: 定义日志格式。
- access_log /var/log/nginx/access.log main;: 访问日志的文件路径。
- sendfile on;: 开启sendfile功能。
- tcp_nopush on; tcp_nodelay on;: 优化TCP传输。
- keepalive_timeout 65;: 客户端与服务器之间的持久连接超时时间。
- types_hash_max_size 2048;: MIME类型哈希表的最大大小。
虚拟主机配置
javascript
server {
listen 80;
server_name example.com;
location / {
root /var/www/example.com;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- server { ... }: 定义一个虚拟主机配置块。
- listen 80;: 监听80端口。
- server_name example.com;: 定义服务器的域名。
- location / { ... }: 处理根路径请求。
- error_page ...: 定义错误页面处理方式。
2. 高级配置
反向代理配置
javascript
server {
listen 80;
server_name backend.example.com;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
}
- server { ... }: 定义反向代理的虚拟主机配置。
- listen 80;: 监听80端口。
- server_name backend.example.com;: 定义服务器的域名。
- location / { ... }: 配置反向代理。
- proxy_pass http://backend_servers;: 将请求代理到后端服务器组。
- upstream backend_servers { ... }: 定义后端服务器组。
SSL/TLS配置
javascript
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate /etc/nginx/ssl/secure.example.com.crt;
ssl_certificate_key /etc/nginx/ssl/secure.example.com.key;
location / {
root /var/www/secure.example.com;
index index.html index.htm;
}
}
- server { ... }: 定义HTTPS的虚拟主机配置。
- listen 443 ssl;: 监听443端口并启用SSL。
- ssl_certificate ...; ssl_certificate_key ...;: 指定SSL证书和私钥的路径。
负载均衡配置
javascript
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name loadbalanced.example.com;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- upstream backend_servers { ... }: 定义负载均衡的后端服务器组。
- proxy_pass http://backend_servers;: 将请求代理到后端服务器组。