您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Nginx配置文件的方法
## 一、Nginx配置文件基础
### 1.1 配置文件位置与结构
Nginx的配置文件通常位于以下路径:
- 主配置文件:`/etc/nginx/nginx.conf`
- 站点配置文件:`/etc/nginx/conf.d/` 或 `/etc/nginx/sites-enabled/`
典型配置文件结构分为三层:
```nginx
# 全局块(全局配置)
user nginx;
worker_processes auto;
# Events块(连接配置)
events {
worker_connections 1024;
}
# HTTP块(核心配置)
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Server块(虚拟主机配置)
server {
listen 80;
server_name example.com;
# Location块(URI路由配置)
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}
include
指令可引入其他配置文件#
开头表示注释user www-data; # 运行用户
worker_processes 4; # 工作进程数
error_log /var/log/nginx/error.log warn; # 错误日志路径
pid /run/nginx.pid; # PID文件位置
events {
worker_connections 2048; # 单个进程最大连接数
multi_accept on; # 是否同时接受多个连接
use epoll; # Linux系统建议使用epoll
}
http {
sendfile on; # 启用高效文件传输
tcp_nopush on; # 优化数据包发送
keepalive_timeout 65; # 保持连接超时时间
gzip on; # 启用Gzip压缩
gzip_types text/plain application/json;
# 日志格式定义
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access.log main;
}
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://backend;
}
}
=
精确匹配(最高优先级)^~
前缀匹配~
或 ~*
正则匹配(区分/不区分大小写)location = /favicon.ico {
access_log off;
expires 30d;
}
location ^~ /static/ {
alias /data/static/;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
}
location /api/ {
proxy_pass http://backend_server/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
upstream backend {
least_conn; # 最少连接算法
server 10.0.0.1:8080 weight=3;
server 10.0.0.2:8080;
server 10.0.0.3:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_use_stale error timeout;
}
}
http {
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
location /api/ {
limit_req zone=api_limit burst=20;
}
}
}
nginx -t # 测试配置文件语法
nginx -T # 测试并输出有效配置
http {
log_format debug '$remote_addr - $request_time - $upstream_response_time';
server {
access_log /var/log/nginx/debug.log debug;
}
}
/etc/nginx/conf.d/
目录
server_tokens off; # 隐藏Nginx版本号
add_header X-Frame-Options DENY;
worker_rlimit_nofile 65535; # 提高文件描述符限制
nginx -s reload
重载配置而非重启服务提示:生产环境修改配置前,务必先进行
nginx -t
测试,并通过版本控制系统管理配置文件变更。 “`
(全文约1750字,包含Nginx配置的核心知识点和实用示例)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。