插件窝 干货文章 linux下安装nginx实例代码分析

linux下安装nginx实例代码分析

Nginx 安装 编译 install 355    来源:    2025-04-24

Linux下安装Nginx实例代码分析

标准安装方法

1. 使用包管理器安装(推荐)

# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y

# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y

# 启动Nginx
sudo systemctl start nginx
sudo systemctl enable nginx

2. 从源码编译安装(自定义配置)

# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev -y

# 下载源码
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3

# 配置编译选项
./configure \
    --prefix=/usr/local/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --pid-path=/var/run/nginx.pid \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-threads

# 编译安装
make
sudo make install

# 创建systemd服务文件
sudo tee /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

# 启动服务
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx

代码分析

包管理器安装分析

  1. 更新包索引apt updateyum update确保获取最新的软件包信息
  2. 安装Nginxapt install nginxyum install nginx从官方仓库安装
  3. 启动服务systemctl命令管理Nginx服务状态

源码编译安装分析

  1. 依赖安装:安装编译所需的开发工具和库
  2. 下载解压:获取Nginx源码并解压
  3. 配置选项
    • --prefix:指定安装目录
    • --with-*:启用各种模块(SSL、HTTP2等)
  4. 编译安装make编译,make install安装
  5. 服务管理:创建systemd服务文件以便系统管理

验证安装

# 检查版本
nginx -v

# 检查运行状态
systemctl status nginx

# 测试配置文件
nginx -t

# 检查端口监听
ss -tulnp | grep nginx

常见问题解决

  1. 端口冲突:修改/etc/nginx/nginx.conf中的监听端口
  2. 权限问题:确保Nginx用户有访问网站目录的权限
  3. 模块缺失:重新编译添加所需模块
  4. 配置文件错误:使用nginx -t测试配置

最佳实践

  1. 生产环境推荐使用包管理器安装,便于维护
  2. 开发环境或需要特定模块时使用源码编译
  3. 配置防火墙开放80和443端口
  4. 定期更新Nginx以获得安全补丁

如需更详细的配置或特定场景的安装指导,请提供更多具体需求。