在Linux系统中部署Nginx服务器是搭建Web服务、实现反向代理的基础操作,不同发行版的安装方式略有差异,但核心配置逻辑一致,下面分步骤讲解完整流程。

一、不同Linux发行版的Nginx安装方法
1. Ubuntu/Debian系统安装
Ubuntu和Debian系统可以直接使用apt包管理器安装官方源中的Nginx版本,步骤如下:
# 更新软件包索引 sudo apt update # 安装Nginx sudo apt install nginx -y # 验证安装是否成功 nginx -v
2. CentOS/RHEL系统安装
CentOS系统默认源中没有最新版Nginx,需要先添加Nginx官方源再安装:
# 添加Nginx官方yum源 sudo tee /etc/yum.repos.d/nginx.repo <<EOF [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true EOF # 安装Nginx sudo yum install nginx -y # 验证安装 nginx -v
二、Nginx基础配置说明
安装完成后,Nginx的默认配置文件路径如下:
- 主配置文件:
/etc/nginx/nginx.conf - 站点配置目录:
/etc/nginx/conf.d/,用户自定义站点配置通常放在这个目录下 - 默认站点根目录:
/usr/share/nginx/html/,默认首页文件为index.html - 日志目录:
/var/log/nginx/,包含访问日志access.log和错误日志error.log
主配置文件的核心结构如下:
# 全局配置块
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
# events配置块
events {
worker_connections 1024;
}
# http配置块
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;
keepalive_timeout 65;
# gzip压缩配置
# gzip on;
# 引入站点配置
include /etc/nginx/conf.d/*.conf;
}
三、自定义静态站点配置
我们可以新建一个站点配置文件,部署自定义静态站点,步骤如下:
1. 创建站点目录和测试文件
# 创建站点根目录
sudo mkdir -p /var/www/my_site
# 创建测试首页
sudo tee /var/www/my_site/index.html <<EOF
<!DOCTYPE html>
<html>
<head>
<title>我的Nginx站点</title>
</head>
<body>
<h1>Nginx静态站点部署成功</h1>
</body>
</html>
EOF
2. 新建站点配置文件
在/etc/nginx/conf.d/目录下新建my_site.conf:
server {
# 监听80端口
listen 80;
# 站点域名,没有域名可以填服务器IP
server_name 192.168.0.1;
# 站点根目录
root /var/www/my_site;
# 默认首页文件
index index.html index.htm;
# 访问日志配置
access_log /var/log/nginx/my_site_access.log;
error_log /var/log/nginx/my_site_error.log;
}
3. 验证配置并重启服务
# 验证Nginx配置文件语法是否正确 sudo nginx -t # 重启Nginx服务 sudo systemctl restart nginx # 设置开机自启 sudo systemctl enable nginx
此时访问服务器IP或者配置的域名,就可以看到自定义的静态站点页面。
四、配置反向代理
Nginx常用的反向代理功能可以将请求转发到后端服务,比如转发到本地运行的8080端口的Java应用,配置示例如下:
server {
listen 80;
server_name 192.168.0.1;
location / {
# 转发到后端服务地址
proxy_pass http://127.0.0.1:8080;
# 传递客户端真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
配置完成后同样执行sudo nginx -t验证配置,再重启Nginx服务即可生效。
五、常见问题排查
- 访问站点返回403错误:检查站点目录和文件的权限,确保nginx用户有读取权限,可以执行
sudo chown -R nginx:nginx /var/www/my_site修改权限 - 配置修改后不生效:确认执行了
sudo nginx -t验证配置,并且重启了Nginx服务 - 端口被占用无法启动:使用
sudo netstat -tulnp | grep 80查看占用80端口的进程,停止对应进程或者修改Nginx监听端口