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 # 确保用户已成功创建

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/13972.html

分享:
扫描分享到社交APP
上一篇
下一篇