目录
一、Nginx 安装与配置
1.1 下载与安装
1.2 配置文件
二、Nginx 基本操作
2.1 启动与停止
2.2 重启与重新加载
三、日志管理
3.1 访问日志
3.2 错误日志
四、虚拟主机管理
4.1 配置虚拟主机
4.2 管理虚拟主机
五、性能优化
5.1 缓存配置
5.2 连接优化
Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛用于 web 服务器、反向代理、负载均衡和 HTTP 缓存等。本文将介绍 Nginx 中最常用的命令,涵盖安装与配置、基本操作、日志管理、虚拟主机管理以及性能优化等方面。
一、Nginx 安装与配置
1.1 下载与安装
1.1.1 下载 Nginx 源代码
wget http://nginx.org/download/nginx-1.21.3.tar.gz
1.1.2 解压并安装 Nginx
tar -zxvf nginx-1.21.3.tar.gz
cd nginx-1.21.3
./configure
make
sudo make install
1.2 配置文件
1.2.1 Nginx 配置文件路径
/etc/nginx/nginx.conf
1.2.2 测试配置文件语法
sudo nginx -t
1.2.3 重新加载配置文件
sudo nginx -s reload
二、Nginx 基本操作
2.1 启动与停止
2.1.1 启动 Nginx
sudo nginx
2.1.2 停止 Nginx
sudo nginx -s stop
2.1.3 优雅地停止 Nginx
sudo nginx -s quit
2.2 重启与重新加载
2.2.1 重启 Nginx
sudo systemctl restart nginx
2.2.2 重新加载配置
sudo systemctl reload nginx
2.2.3 检查 Nginx 状态
sudo systemctl status nginx
三、日志管理
3.1 访问日志
3.1.1 查看访问日志
tail -f /var/log/nginx/access.log
3.1.2 访问日志格式配置
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;
3.2 错误日志
3.2.1 查看错误日志
tail -f /var/log/nginx/error.log
3.2.2 错误日志级别配置
error_log /var/log/nginx/error.log warn;
四、虚拟主机管理
4.1 配置虚拟主机
4.1.1 创建虚拟主机配置文件
server {listen 80;server_name example.com;root /var/www/example;location / {try_files $uri $uri/ =404;}
}
4.1.2 启用虚拟主机配置
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
4.2 管理虚拟主机
4.2.1 禁用虚拟主机
sudo unlink /etc/nginx/sites-enabled/example.com
4.2.2 测试虚拟主机配置
sudo nginx -t
五、性能优化
5.1 缓存配置
5.1.1 启用缓存
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;server {location / {proxy_cache my_cache;proxy_pass http://backend;}
}
5.1.2 清除缓存
sudo rm -rf /data/nginx/cache/*
5.2 连接优化
5.2.1 调整 worker 进程数
worker_processes auto;
5.2.2 设置连接超时
keepalive_timeout 65;
client_body_timeout 12;
client_header_timeout 12;
send_timeout 10;//nginx 出现504 Gateway Time-out的解决方法
proxy_connect_timeout 300; #单位秒
proxy_send_timeout 300; #单位秒
proxy_read_timeout 300; #单位秒
通过上述命令,您可以高效地管理和操作 Nginx,确保其稳定运行并提升性能。