CentOS 6.5 系统下启动 Nginx 的完整指南
在 CentOS 6.5 系统中部署和启动 Nginx 是许多服务器管理员的基本技能,Nginx 作为一款高性能的 HTTP 和反向代理服务器,因其轻量级、高并发和低资源消耗的特点,被广泛应用于 Web 服务架构中,本文将详细介绍在 CentOS 6.5 系统中安装、配置和启动 Nginx 的步骤,并提供常见问题的解决方案。

环境准备与依赖安装
在启动 Nginx 之前,确保系统已满足基本要求并安装必要的依赖包,CentOS 6.5 默认使用 YUM 包管理器,可通过以下命令更新系统并安装编译工具:
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install wget gcc pcre-devel zlib-devel openssl-devel -y
这些依赖包包括:
- Development Tools:提供编译 Nginx 所需的 GCC 和 Make 工具。
- pcre-devel:支持 Nginx 的正则表达式功能。
- zlib-devel:用于启用 Gzip 压缩功能。
- openssl-devel:支持 HTTPS 协议。
下载并编译安装 Nginx
Nginx 官方源码包可通过官网或 wget 命令获取,以下为下载并编译安装的步骤:
-
下载 Nginx 源码包
wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -zxvf nginx-1.18.0.tar.gz cd nginx-1.18.0
-
配置编译参数
使用./configure脚本指定安装路径和功能模块,以下为常用配置:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module
参数说明:
--prefix:指定 Nginx 安装目录。--with-http_ssl_module:启用 HTTPS 支持。--with-http_gzip_static_module:启用 Gzip 压缩。--with-http_stub_status_module:启用状态监控页面。
-
编译并安装
make sudo make install
创建 Nginx 服务脚本
为方便管理 Nginx 服务,可将其注册为系统服务,在 /etc/init.d/ 目录下创建 nginx 脚本:

sudo vim /etc/init.d/nginx
需根据实际安装路径调整):
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginx_path="/usr/local/nginx"
prog=$(basename $nginx_path/sbin/nginx)
NGINX_CONF_FILE="$nginx_path/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx_path/sbin/$prog ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx_path/sbin/$prog -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $prog -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx_path/sbin/$prog -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload|upgrade)
rh_status_q || exit 7
force_reload
;;
status)
rh_status
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload|status|configtest}"
exit 2
esac
保存后赋予执行权限并添加到系统服务:
sudo chmod +x /etc/init.d/nginx sudo chkconfig --add nginx sudo chkconfig nginx on
启动与验证 Nginx
-
启动 Nginx 服务
sudo service nginx start
-
检查运行状态
sudo service nginx status
-
验证服务是否正常
在浏览器中访问服务器 IP 地址(如http://192.168.1.100),若显示 Nginx 欢迎页面,则表示启动成功。
配置防火墙与 SELinux
CentOS 6.5 默认启用防火墙(iptables)和 SELinux,需放行 Nginx 默认端口 80:
-
开放 HTTP 端口
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo service iptables save
-
临时关闭 SELinux(可选)

sudo setenforce 0
若需永久关闭,可编辑
/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled。
常见问题与解决方案
-
启动失败:
nginx: [emerg] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
原因:Nginx 未正确创建日志目录或权限不足。
解决:手动创建日志目录并授权:sudo mkdir -p /usr/local/nginx/logs sudo chown -R nobody:nobody /usr/local/nginx/logs
-
浏览器访问失败:
403 Forbidden
原因:Nginx 配置文件中的root路径错误或目录权限不足。
解决:检查nginx.conf中的root指令,并设置目录权限:sudo chmod -R 755 /usr/local/nginx/html
FAQs
Q1:如何查看 Nginx 的错误日志?
A1:Nginx 的错误日志默认位于 /usr/local/nginx/logs/error.log,可通过以下命令查看:
tail -f /usr/local/nginx/logs/error.log
Q2:如何修改 Nginx 监听的端口号?
A2:编辑 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,修改 listen 指令的端口号(如改为 8080),然后重启服务:
sudo service nginx restart
同时需确保防火墙已开放新端口(如 sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT)。