插件窝 干货文章 Linux下如何实现Nginx安装、启动、重启和停止

Linux下如何实现Nginx安装、启动、重启和停止

Nginx bash sudo 配置 867    来源:    2025-04-23

Linux下Nginx的安装与管理指南

一、Nginx安装

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

Ubuntu/Debian系统

sudo apt update
sudo apt install nginx

CentOS/RHEL系统

sudo yum install epel-release  # 先安装EPEL仓库
sudo yum install nginx

Fedora系统

sudo dnf install nginx

2. 从源码编译安装(高级用户)

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

# 下载源码
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 \
            --with-http_ssl_module \
            --with-http_v2_module

# 编译安装
make
sudo make install

二、Nginx服务管理

1. 使用systemd管理(主流Linux发行版)

启动Nginx

sudo systemctl start nginx

停止Nginx

sudo systemctl stop nginx

重启Nginx(平滑重启,不会断开现有连接):

sudo systemctl reload nginx

强制重启Nginx(会断开现有连接):

sudo systemctl restart nginx

查看Nginx状态

sudo systemctl status nginx

设置开机启动

sudo systemctl enable nginx

2. 使用传统服务命令(旧版系统)

启动Nginx

sudo service nginx start

停止Nginx

sudo service nginx stop

重启Nginx

sudo service nginx restart

重载配置

sudo service nginx reload

3. 直接使用Nginx二进制命令(源码安装时)

启动Nginx

/usr/local/nginx/sbin/nginx

停止Nginx

/usr/local/nginx/sbin/nginx -s stop

平滑重启Nginx

/usr/local/nginx/sbin/nginx -s reload

重新打开日志文件

/usr/local/nginx/sbin/nginx -s reopen

三、验证Nginx运行

  1. 检查服务状态:
systemctl status nginx
  1. 检查端口监听:
ss -tulnp | grep nginx
# 或
netstat -tulnp | grep nginx
  1. 访问测试页面: 在浏览器中访问 http://服务器IP,应该能看到Nginx欢迎页面。

四、常见问题解决

  1. 端口冲突

    • 检查80端口是否被占用:sudo lsof -i :80
    • 修改Nginx监听端口:编辑 /etc/nginx/nginx.conf
  2. 权限问题

    • 确保Nginx用户有访问相关文件的权限
    • 检查错误日志:tail -f /var/log/nginx/error.log
  3. 配置测试: 修改配置后,先测试配置是否正确:

    sudo nginx -t
    
  4. 防火墙设置

    sudo ufw allow 'Nginx Full'  # Ubuntu
    sudo firewall-cmd --permanent --add-service=http --add-service=https  # CentOS
    sudo firewall-cmd --reload
    

五、补充说明

  1. 配置文件位置:

    • 主配置文件:/etc/nginx/nginx.conf
    • 站点配置:/etc/nginx/conf.d//etc/nginx/sites-available/
  2. 日志文件位置:

    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log
  3. 默认网站根目录:

    • /usr/share/nginx/html (RHEL/CentOS)
    • /var/www/html (Ubuntu/Debian)