HCRM博客

如何在CentOS上配置Nginx服务器?

在 CentOS 上配置 Nginx 是一个常见的任务,Nginx 是一款轻量级、高性能的 HTTP 服务器和反向代理服务器,本文将详细介绍如何在 CentOS 上安装、配置和管理 Nginx,并提供一些常见问题的解答。

一、安装 Nginx

1. 通过 Yum 命令安装 Nginx

如何在CentOS上配置Nginx服务器?-图1
(图片来源网络,侵权删除)

这是最简单的安装方式,适用于大多数场景。

安装 Nginx
yum y install nginx
启动 Nginx
systemctl start nginx
设置开机自启
systemctl enable nginx

2. 通过源码编译安装 Nginx

这种方式适用于需要自定义编译选项的场景。

安装依赖包
yum y install gcc gccc++ make zlib zlibdevel openssl openssldevel pcre pcredevel
下载 Nginx 源码
wget http://nginx.org/download/nginx1.24.0.tar.gz
解压源码包
tar zxvf nginx1.24.0.tar.gz
编译并安装
cd nginx1.24.0
./configure prefix=/usr/local/nginx
make && make install
启动 Nginx
/usr/local/nginx/sbin/nginx

二、配置 Nginx

1. 配置文件结构

Nginx 的配置文件通常位于/etc/nginx/usr/local/nginx/conf 目录下,主配置文件名为nginx.conf,该文件包含全局配置和虚拟主机配置。

/etc/nginx
├── conf.d
│   └── default.conf
├── fastcgi.conf
├── fastcgi_params
├── mime.types
├── modulesenabled
├── modulesavailable
├── nginx.conf
├── scgi_params
├── uwsgi_params
└── winutf

2. 基本配置示例

如何在CentOS上配置Nginx服务器?-图2
(图片来源网络,侵权删除)

以下是一个基本的nginx.conf 配置示例:

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  example.com;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

3. 虚拟主机配置

建议对虚拟主机的配置文件进行单独管理,以便新建和维护站点时更加方便,可以在/etc/nginx/vhost 目录下创建单独的配置文件:

进入配置目录
cd /etc/nginx/
建立虚拟主机配置目录
mkdir vhost

vhost 目录中创建一个新的配置文件,如www.abc.com.conf

server {
    listen       80;
    server_name  www.abc.com abc.com;
    root   /home/wwwroot/www.abc.com;
    index  index.html index.htm;
}

在主配置文件nginx.conf 中引入虚拟主机配置文件:

include vhost/*.conf;

每次修改配置文件后,需重启 Nginx 使其生效:

如何在CentOS上配置Nginx服务器?-图3
(图片来源网络,侵权删除)
重启 Nginx
systemctl restart nginx

三、管理 Nginx

1. 常用管理命令

启动 Nginxsystemctl start nginx

停止 Nginxsystemctl stop nginx

重启 Nginxsystemctl restart nginx

重新加载配置文件systemctl reload nginx

查看 Nginx 状态systemctl status nginx

检查配置文件语法nginx t

2. 防火墙配置

如果系统启用了防火墙,需要开放 HTTP(80)和 HTTPS(443)端口:

开放 HTTP 和 HTTPS 端口
firewallcmd permanent addservice=http
firewallcmd permanent addservice=https
firewallcmd reload

四、常见问题与解答 (FAQs)

Q1: 如何更改 Nginx 默认监听的端口?

A1: 可以通过修改nginx.conf 中的listen 指令来更改默认监听端口,将默认的80端口改为8080:

server {
    listen       8080;
    server_name  example.com;
    ...
}

然后重启 Nginx 使更改生效:systemctl restart nginx

Q2: Nginx 出现 “[emerg] getpwnam("nginx") failed” 错误怎么办?

A2: 这个错误通常是由于系统中没有名为nginx用户导致的,可以通过以下命令创建nginx 用户:

useradd s /sbin/nologin M nginx
id nginx # 确保用户已成功创建
分享:
扫描分享到社交APP
上一篇
下一篇