Nginx安装配置完整教程,从安装到运行

前言

刚装好 CentOS 服务器,想跑个网站,第一步就是装 Nginx。Nginx 是目前最流行的 Web 服务器,性能高、占用资源少,还能做反向代理和负载均衡。本文就从安装 Nginx 开始,一步步讲怎么配置一个能跑的网站。

第一步:安装 Nginx

1. 安装 EPEL 源

CentOS7 默认源里的 Nginx 版本比较老,先装 EPEL 源:

yum install epel-release -y

2. 安装 Nginx

yum install nginx -y

3. 启动 Nginx

systemctl start nginx

4. 设置开机自启

systemctl enable nginx

5. 开放防火墙

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

6. 测试

浏览器访问你的服务器 IP,应该能看到 Nginx 默认欢迎页面。

第二步:Nginx 配置文件结构

Nginx 的配置文件都在 /etc/nginx/ 目录下:

/etc/nginx/
├── nginx.conf          # 主配置文件
├── conf.d/             # 子配置文件目录
│   └── default.conf   # 默认站点配置
├── fastcgi.conf
├── mime.types
└── ...

一般我们写站点配置,都放在 conf.d/ 目录下,每个站点一个文件。

第三步:配置第一个站点

1. 创建网站根目录

mkdir -p /var/www/html/test

2. 写一个测试页面

echo "Hello Nginx" > /var/www/html/test/index.html

3. 创建站点配置文件

vi /etc/nginx/conf.d/test.conf

写入:

server {
    listen       80;
    server_name  www.example.com;

    root   /var/www/html/test;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

4. 检查配置是否正确

nginx -t

输出 test is successful 就是没问题。

5. 重新加载 Nginx

systemctl reload nginx

6. 测试

浏览器访问 www.example.com,应该能看到 "Hello Nginx"。

注意: 要把域名解析到你服务器的 IP 上,或者在本地 hosts 文件里加一条记录。

常用配置说明

listen 监听端口

listen 80;

监听 80 端口,HTTP 默认端口。

如果要监听 HTTPS 的 443 端口:

listen 443 ssl;

server_name 域名

server_name www.example.com example.com;

可以写多个域名,用空格隔开。

root 网站根目录

root /var/www/html/test;

网站文件放在这个目录下。

index 默认首页

index index.html index.htm;

用户访问网站根目录的时候,默认找哪个文件。

配置 PHP 支持

如果要跑 PHP 网站,还需要配置 PHP-FPM。

1. 安装 PHP-FPM

yum install php-fpm php-mysql -y

2. 启动 PHP-FPM

systemctl start php-fpm
systemctl enable php-fpm

3. 修改 Nginx 配置

在站点配置里加上 PHP 支持:

server {
    listen       80;
    server_name  www.example.com;

    root   /var/www/html/test;
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

4. 重启 Nginx

systemctl restart nginx

5. 测试 PHP

创建一个 info.php 文件:

echo "<?php phpinfo(); ?>" > /var/www/html/test/info.php

浏览器访问 www.example.com/info.php,应该能看到 PHP 信息页面。

常见坑

坑1:403 Forbidden

访问网站报 403,一般是权限问题。

排查:

  1. 看文件权限是不是 644,目录是不是 755
  2. 看所有者是不是 nginx
  3. 看 SELinux 是不是开着
chown -R nginx:nginx /var/www/html/test
chmod -R 755 /var/www/html/test

坑2:502 Bad Gateway

访问网站报 502,说明 Nginx 连不上 PHP-FPM。

排查:

  1. 看 PHP-FPM 有没有启动:systemctl status php-fpm
  2. 看配置里的 fastcgi_pass 地址对不对

坑3:配置改完不生效

改了 Nginx 配置,没 reload,结果配置没生效。

解决: 改完配置记得 reload:

nginx -t
systemctl reload nginx

坑4:域名解析了还是打不开

域名解析了,但还是打不开。

排查:

  1. 看防火墙有没有开 80 端口
  2. 看安全组有没有开 80 端口(云服务器)
  3. 看域名解析有没有生效:ping www.example.com

总结

Nginx 安装配置的完整流程:

  1. 安装 Nginx:yum install nginx -y
  2. 启动并开机自启:systemctl start nginx && systemctl enable nginx
  3. 开放防火墙:80 和 443 端口
  4. 写站点配置:在 conf.d/ 下创建配置文件
  5. 检查并重载:nginx -t && systemctl reload nginx

Nginx 是 Web 服务器的入门必备,装完这个就能跑网站了。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:52 

Linux服务管理,systemctl常用命令汇总

前言

CentOS7 装完软件,怎么启动?怎么开机自启?服务挂了怎么查日志?这些都需要用到 systemctl 命令。CentOS7 开始用 systemd 代替了原来的 service 命令,systemctl 就是 systemd 的管理工具。本文就把 systemctl 常用命令汇总一下,日常管理服务够用了。

启动和停止服务

启动服务

systemctl start nginx

停止服务

systemctl stop nginx

重启服务

systemctl restart nginx

重新加载配置

systemctl reload nginx

注意: reload 和 restart 的区别:

  • reload:不重启进程,重新加载配置,不中断服务
  • restart:重启进程,会短暂中断服务

查看服务状态

查看服务状态

systemctl status nginx

输出会显示服务是不是在运行、PID、内存占用、最近的日志等。

查看服务是不是在运行

systemctl is-active nginx

输出 active 就是在运行,inactive 就是没运行。

查看服务是不是开机自启

systemctl is-enabled nginx

输出 enabled 就是开机自启,disabled 就是不自启。

开机自启管理

设置开机自启

systemctl enable nginx

取消开机自启

systemctl disable nginx

同时启动并设置开机自启

systemctl enable --now nginx

一条命令搞定,不用分两步。

查看日志

查看服务日志

journalctl -u nginx

实时跟踪日志

journalctl -u nginx -f

和 tail -f 类似,实时滚动显示日志。

查看最近100行日志

journalctl -u nginx -n 100

查看今天的日志

journalctl -u nginx --since today

查看指定时间的日志

journalctl -u nginx --since "2026-10-05 10:00:00" --until "2026-10-05 11:00:00"

查看所有服务

列出所有正在运行的服务

systemctl list-units --type=service

列出所有服务(包括没运行的)

systemctl list-unit-files --type=service

按状态过滤

systemctl list-units --type=service --state=running

常用服务管理示例

启动 Nginx 并设置开机自启

systemctl start nginx
systemctl enable nginx

或者一条命令:

systemctl enable --now nginx

重启 Nginx

systemctl restart nginx

查看 Nginx 状态

systemctl status nginx

查看 Nginx 日志

journalctl -u nginx -f

常见坑

坑1:还在用 service 命令

CentOS6 用 service nginx start,CentOS7 开始用 systemctl start nginx。老命令还能用,但新系统推荐用 systemctl。

坑2:改了配置不生效

改了 Nginx 配置,忘了 reload,结果配置没生效。

解决: 改完配置记得 reload:

systemctl reload nginx

坑3:服务启动失败不知道为啥

服务启动失败,只看状态不知道具体原因。

解决: 看日志:

journalctl -u nginx

坑4:重启服务器后服务没自启

装完软件启动了,但没设置开机自启,重启之后服务就没了。

解决: 装完软件记得设置开机自启:

systemctl enable nginx

总结

systemctl 常用命令:

命令 作用
systemctl start 服务名 启动服务
systemctl stop 服务名 停止服务
systemctl restart 服务名 重启服务
systemctl reload 服务名 重新加载配置
systemctl status 服务名 查看服务状态
systemctl enable 服务名 设置开机自启
systemctl disable 服务名 取消开机自启
systemctl is-active 服务名 查看是否在运行
systemctl is-enabled 服务名 查看是否开机自启
journalctl -u 服务名 -f 实时查看日志

记住这几个,CentOS7+ 日常管理服务就够用了。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:51 

Linux软件包管理,yum常用命令汇总

前言

CentOS 装软件怎么装?装完怎么卸?找不到某个软件包名怎么办?这些都需要用到 yum 命令。yum 是 CentOS/RHEL 系统的软件包管理器,自动解决依赖关系,比 rpm 好用多了。本文就把 yum 常用命令汇总一下,装软件、卸软件、查软件都能用。

安装软件

安装软件包

yum install nginx -y

-y 表示自动确认,不用手动输 y。

安装多个软件包

yum install nginx mysql php -y

重新安装

yum reinstall nginx -y

软件装坏了想重装,用这个。

卸载软件

卸载软件包

yum remove nginx -y

卸载并删除依赖

yum autoremove nginx -y

把安装 nginx 时自动装上的依赖也一起删掉。

更新软件

更新所有软件

yum update -y

注意: 这个会把所有软件都更新一遍,包括内核。生产环境慎用,可能会把系统搞挂。

更新某个软件

yum update nginx -y

只更新 nginx。

检查哪些软件可以更新

yum check-update

查找软件

搜索软件包

yum search nginx

模糊搜索,输出所有名字或描述里包含 nginx 的包。

查找文件属于哪个包

yum provides /usr/sbin/nginx

你知道某个文件路径,但不知道是哪个包装的,用这个查。

查看软件包信息

yum info nginx

输出软件包的详细信息:版本、大小、描述等。

查看已安装软件

列出所有已安装的包

yum list installed

太多了可以配合 grep:

yum list installed | grep nginx

查看某个软件装没装

yum list installed nginx

仓库管理

查看已启用的仓库

yum repolist

查看所有仓库(包括禁用的)

yum repolist all

清理缓存

yum clean all

yum 下载的包会缓存下来,占磁盘空间。定期清理一下。

重建缓存

yum makecache

常用场景

场景1:装 Nginx

yum install nginx -y
systemctl start nginx
systemctl enable nginx

场景2:不知道软件包名

想装个下载工具,但不知道叫什么。

yum search wget

或者:

yum search curl

场景3:某个命令找不到

输入 ifconfig 提示 command not found,不知道是哪个包装的。

yum provides ifconfig

会告诉你是 net-tools 包提供的,装一下:

yum install net-tools -y

场景4:软件版本太旧

CentOS7 自带的软件版本都比较老,比如 Nginx 是 1.20。想用新版本,需要加第三方源。

装 EPEL 源:

yum install epel-release -y

装完 EPEL 源之后,就能装更多软件包了。

常见坑

坑1:yum install 不加 -y

不加 -y 的话,安装到一半会停下来问你 Is this ok [y/d/N],自动化脚本里很容易卡在这里。

解决: 命令后面加 -y:

yum install nginx -y

坑2:yum update 把系统搞挂了

生产环境跑了 yum update -y,结果内核更新了,重启之后服务起不来。

解决: 生产环境不要随便 yum update,要更新就单独更新某个软件:

yum update nginx -y

坑3:找不到软件包

用默认源搜不到某个软件,比如 Docker、Node.js 这些。

解决: 加第三方源,比如 EPEL:

yum install epel-release -y

坑4:yum 缓存满了

yum 缓存的包占了很多磁盘空间。

解决: 定期清理:

yum clean all

总结

yum 常用命令:

命令 作用
yum install 包名 -y 安装软件
yum remove 包名 -y 卸载软件
yum update 包名 -y 更新软件
yum search 关键词 搜索软件
yum provides 文件路径 查文件属于哪个包
yum info 包名 查看软件包信息
yum list installed 列出已安装的包
yum repolist 查看仓库列表
yum clean all 清理缓存

记住这几个,CentOS 日常装软件就够用了。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:50 

Linux查看系统版本和内核信息,cat /etc/os-release和uname命令

前言

刚拿到一台服务器,第一步就是看看是什么系统、什么版本、内核是多少。不同的系统版本配置方法不一样,CentOS7 和 CentOS8 的防火墙命令都不一样,Ubuntu 和 CentOS 的包管理器也不一样。所以第一件事就是确认系统版本。本文就讲一下怎么查看 Linux 系统版本和内核信息。

查看系统版本

方法一:cat /etc/os-release(推荐)

这是最通用的方法,所有现代 Linux 发行版都有这个文件:

cat /etc/os-release

CentOS7 输出示例:

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Ubuntu 输出示例:

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"

重点看 NAME、VERSION、VERSION_ID 这几行。

方法二:cat /etc/redhat-release(CentOS/RHEL专用)

CentOS 和 RHEL 系统可以直接看这个文件:

cat /etc/redhat-release

输出:

CentOS Linux release 7.9.2009 (Core)

方法三:lsb_release -a

lsb_release -a

输出:

Distributor ID: CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:        7.9.2009
Codename:       Core

注意: 有些系统默认没装 lsb_release,需要先安装:

yum install redhat-lsb -y

方法四:hostnamectl

hostnamectl

输出会显示系统信息,包括操作系统和内核版本:

   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: xxxxxxxx
           Boot ID: xxxxxxxx
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.el7.x86_64
      Architecture: x86-64

这个命令同时显示系统版本和内核版本,很方便。

查看内核版本

方法一:uname -a(最常用)

uname -a

输出示例:

Linux localhost 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

各段含义:

  • Linux:内核名
  • localhost:主机名
  • 3.10.0-1160.el7.x86_64:内核版本
  • #1 SMP ...:编译信息
  • x86_64 x86_64 x86_64:硬件架构、处理器类型、操作系统类型

方法二:uname -r

只看内核版本号:

uname -r

输出:

3.10.0-1160.el7.x86_64

内核版本号拆解:

  • 3:主版本
  • 10:次版本
  • 0:修订版本
  • 1160:RHEL补丁号
  • el7:Enterprise Linux 7
  • x86_64:64位

方法三:cat /proc/version

cat /proc/version

输出:

Linux version 3.10.0-1160.el7.x86_64 (mockbuild@x86-01.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:58 UTC 2020

查看系统架构

uname -m

输出:

x86_64

说明是64位系统。如果输出 i686 就是32位。

或者用:

arch

实际应用场景

场景1:刚拿到服务器,先确认系统版本

cat /etc/os-release
uname -r

确认是 CentOS7 还是 Ubuntu,内核版本是多少。

场景2:安装软件前确认版本

不同版本的系统安装方法不一样,CentOS7 用 yum,Ubuntu 用 apt。先确认版本再装软件。

场景3:排查内核兼容性问题

有些软件要求特定内核版本,先看看当前内核版本够不够。

uname -r

场景4:确认是32位还是64位

uname -m

常见坑

坑1:cat /etc/issue 不准

很多老教程说用 cat /etc/issue 看系统版本,但这个文件可能被改过,不一定准。推荐用 /etc/os-release。

坑2:把内核版本和系统版本搞混

内核版本是 uname -r 显示的,系统版本是 /etc/os-release 显示的。这两个不一样,别搞混了。

坑3:CentOS 各小版本不影响大版本

CentOS7.9 和 CentOS7.6 都是 CentOS7,大部分操作是一样的。只要大版本对就行,不用纠结小版本号。

总结

查看系统版本和内核信息的核心命令:

  1. cat /etc/os-release:看系统版本(最通用)
  2. cat /etc/redhat-release:CentOS/RHEL 专用
  3. uname -a:看内核版本和系统架构
  4. uname -r:只看内核版本号
  5. hostnamectl:同时看系统版本和内核版本

拿到一台新服务器,先跑这几个命令确认系统环境,再开始做其他操作。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:42