在CentOS 6.5操作系统上安装和配置Nginx是一个相对简单的过程,但需要一定的步骤来确保成功,以下是详细的步骤指南:
Nginx的安装与配置
1. 安装必要的依赖包

在安装Nginx之前,需要先安装一些依赖包,这些包包括gCC
、pcre
、zlib
和openssl
,这些包可以通过YUM仓库进行安装:
- yum install gccc++ pcre pcredevel zlib zlibdevel openssl openssldevel y
2. 下载Nginx源码
从官方网站下载Nginx的源码包,可以选择一个稳定版本,例如1.9.9:
- cd /usr/local
- wget http://nginx.org/download/nginx1.9.9.tar.gz
3. 解压源码包
下载完成后,解压源码包:
- tar zxvf nginx1.9.9.tar.gz
4. 编译和安装Nginx

进入解压后的目录,并运行配置、编译和安装命令:
- cd nginx1.9.9
- ./configure prefix=/usr/local/nginx
- make
- make install
5. 启动Nginx服务
进入安装目录并启动Nginx服务:
- /usr/local/nginx/sbin/nginx
6. 验证安装
通过浏览器访问服务器IP地址或域名,如果看到"Welcome to nginx!"页面,说明Nginx安装成功。
Nginx的基本配置
1. 配置文件位置

Nginx的主配置文件位于/usr/local/nginx/conf/nginx.conf
,可以根据需要进行修改,例如设置监听端口、日志文件等。
2. 常用配置示例
以下是一个基本的NGINX配置示例,用于设置一个简单的静态网站:
- worker_processes 1;
- events {
- worker_connections 1024;
- }
- http {
- include mime.types;
- default_type application/octetstream;
- sendfile on;
- keepalive_timeout 65;
- server {
- listen 80;
- server_name localhost;
- location / {
- root html;
- index index.html index.htm;
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- }
- }
Nginx作为反向代理服务器的配置
Nginx不仅可以作为静态和动态网站的服务器,还可以作为反向代理服务器,以下是一个简单的反向代理配置示例:
- http {
- upstream backend {
- server backend1.example.com;
- server backend2.example.com;
- }
- server {
- listen 80;
- server_name example.com;
- location / {
- proxy_pass http://backend;
- proxy_set_header Host $host;
- proxy_set_header XRealIP $remote_addr;
- proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
- proxy_set_header XForwardedProto $scheme;
- }
- }
- }
Nginx的防火墙配置
为了允许外部访问Nginx,需要在防火墙中开放80端口(HTTP)和443端口(HTTPS):
- /sbin/iptables I INPUT p tcp dport 80 j ACCEPT
- /sbin/iptables I INPUT p tcp dport 443 j ACCEPT
- /etc/rc.d/init.d/iptables save
Nginx添加到系统服务
为了使Nginx能够在系统启动时自动启动,可以将其添加到系统服务中:
- vi /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 highperformance web and proxy server.
- It has a lot of features, but it's not for everyone.
- processname: nginx
- pidfile: /var/run/nginx.pid
- config: /usr/local/nginx/conf/nginx.confnginxd=/usr/local/nginx/sbin/nginx
- nginx_config=/usr/local/nginx/conf/nginx.conf
- nginx_pid=/var/run/nginx.pid
- RETVAL=0
- prog="nginx"
- Source function library.
- . /etc/rc.d/init.d/functions
- Source networking configuration.
- . /etc/sysconfig/network
- Check that networking is up.
- [ ${NETWORKING} = "no" ] && exit 0
- [ x $nginxd ] || exit 0
- Start nginx daemons functions.
- start() {
- if [ e $nginx_pid ];then
- echo "nginx already running...."
- exit 1
- fi
- echo n $"Starting $prog: "
- daemon $nginxd c ${nginx_config}
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
- return $RETVAL
- }
- Stop nginx daemons functions.
- stop() {
- echo n $"Stopping $prog: "
- killproc $nginxd
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm f /var/lock/subsys/nginx /var/run/nginx.pid
- }
- reload nginx service functions.
- reload() {
- echo n $"Reloading $prog: "
- killproc $nginxd HUP
- RETVAL=$?
- echo
- return $RETVAL
- }
保存文件后,赋予执行权限:
- chmod +x /etc/init.d/nginx
- chkconfig add nginx
- service nginx start
常见问题解答(FAQs)
Q1: Nginx启动失败,提示“nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)”怎么办?
A1: 这个错误通常是由于非特权用户尝试绑定到80端口导致的,可以使用以下方法解决:
1、修改Nginx配置文件中的用户,将user
指令改为当前用户:
- user root; # or any other user with sufficient privileges
2、或者以root用户身份启动Nginx:
- sudo /usr/local/nginx/sbin/nginx c /usr/local/nginx/conf/nginx.conf
3、确保防火墙和SELinux没有阻止Nginx绑定端口,可以使用以下命令关闭SELinux(不推荐长期使用):
- setenforce 0
Q2: 如何更改Nginx的默认根目录?
A2: 要更改Nginx的默认根目录,可以编辑主配置文件nginx.conf
,找到server
块中的root
指令并修改为新的路径。
- server {
- listen 80;
- server_name localhost;
- location / {
- root /new/path/to/root; # 修改此处为你的新根目录路径
- index index.html index.htm;
- }
- }
保存配置文件后,重新加载Nginx配置:
- /usr/local/nginx/sbin/nginx s reload