Linux系统下Nginx的安装与配置详解
Nginx简介与优势
Nginx(Engine X)是一款高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务,相较于传统Apache,Nginx采用事件驱动的异步模型,具有高并发、低内存消耗、模块化设计等优势,广泛应用于Web服务、负载均衡、静态资源分发等场景,在Linux系统中,Nginx的安装与配置是运维和开发人员必备技能之一。

安装前的环境准备
在安装Nginx之前,需确保Linux系统满足基本要求,并安装必要的依赖包,以CentOS系统为例,执行以下命令更新系统并安装编译工具:
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install wget gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
- pcre:支持正则表达式,用于重写规则。
- zlib:用于压缩传输,提升访问速度。
- openssl:支持HTTPS协议。
对于Ubuntu/Debian系统,可使用apt替代yum安装依赖。
Nginx的安装方式
Nginx提供两种主要安装方式:源码编译安装和包管理器安装。
源码编译安装(推荐)
编译安装可灵活定制功能模块,步骤如下:
(1)下载Nginx最新稳定版(以1.24.0为例):
wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0
(2)配置编译参数,常用选项包括:

./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module
--prefix:指定安装路径,默认为/usr/local/nginx。--with-http_ssl_module:启用HTTPS支持。--with-http_stub_status_module:提供状态监控页面。
(3)编译并安装:
make -j$(nproc) && sudo make install
(4)添加Nginx系统服务(可选):
创建/etc/systemd/system/nginx.service如下:
[Unit] Description=Nginx Web Server After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PIDFile=/usr/local/nginx/logs/nginx.pid [Install] WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable nginx && sudo systemctl start nginx
包管理器安装
对于快速部署,可直接使用系统包管理器:
- CentOS:
sudo yum install epel-release -y sudo yum install nginx -y
- Ubuntu:
sudo apt update && sudo apt install nginx -y
安装后可通过
sudo systemctl start nginx启动服务。
Nginx核心配置文件解析
Nginx的主配置文件位于/usr/local/nginx/conf/nginx.conf(或/etc/nginx/nginx.conf),核心模块包括main、events、http、server和location。
全局配置(main段)
user nginx; # 运行用户,CentOS默认为nginx worker_processes auto; # 工作进程数,auto自动检测CPU核心数 error_log logs/error.log warn; # 错误日志路径 pid logs/nginx.pid; # PID文件路径
事件模块(events段)
events {
worker_connections 1024; # 单进程最大连接数
use epoll; # Linux高效事件模型
}
HTTP模块(http段)
http {
include 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 logs/access.log main; # 访问日志
# 性能优化
sendfile on; # 高效文件传输
tcp_nopush on; # 优化网络包发送
keepalive_timeout 65; # 连接超时时间
# 虚拟主机配置
server {
listen 80;
server_name localhost;
location / {
root html; # 网站根目录
index index.html index.htm; # 默认首页
}
# 错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置优化与安全加固
性能优化
- 调整工作进程数:根据CPU核心数设置
worker_processes。 - 开启GZIP压缩:
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml;
- 连接超时:合理设置
keepalive_timeout,避免资源占用。
安全加固
- 隐藏版本号:在
http段添加server_tokens off;。 - 限制访问IP:通过
allow和deny指令控制访问来源。 - HTTPS配置:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; }
常见问题与维护
- 检查配置语法:
nginx -t - 平滑重启:
nginx -s reload - 日志切割:使用
logrotate工具定期归档日志。
Nginx在Linux环境下的安装与配置是构建高性能Web服务的关键步骤,通过源码编译可灵活定制功能,而核心配置文件的优化直接关系到服务器的稳定性和效率,合理利用模块化设计和安全策略,能够充分发挥Nginx在高并发场景下的优势,为Web应用提供可靠支撑。


















