HCRM博客

如何在CentOS 7上安装和配置Nginx服务器?

CentOS 7 Nginx 安装与配置指南

一、前言

Nginx 作为一款高性能的 HTTP 和反向代理服务器,广泛应用于负载均衡、静态资源服务以及作为反向代理等场景,本文将详细介绍如何在 CentOS 7 上安装和配置 Nginx,包括其依赖环境的安装、Nginx 的安装步骤、配置文件的编写与修改、防火墙设置以及启动和停止 Nginx 服务等内容。

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

二、安装 Nginx 及其依赖环境

1. 更新系统软件包

在安装 Nginx 之前,首先需要确保系统的软件包是最新的,打开终端并执行以下命令:

  • sudo yum update y

2. 安装 EPEL(Extra Packages for Enterprise Linux)源

Nginx 官方提供的 YUM 仓库中有适用于 CentOS 的预编译包,可以方便地进行安装,执行以下命令添加 EPEL 源:

  • sudo yum install y epelrelease

3. 安装 Nginx

通过 YUM 安装 Nginx:

如何在CentOS 7上安装和配置Nginx服务器?-图2
(图片来源网络,侵权删除)
  • sudo yum install y nginx

安装完成后,默认的网站目录为/usr/share/nginx/html,默认的配置文件路径/etc/nginx/nginx.conf,自定义配置文件目录为/etc/nginx/conf.d/

三、配置 Nginx

1. 开启端口 80 和 443

如果服务器启用了防火墙,需要开放 Web 服务的端口(80 和 443):

  • sudo firewallcmd permanent zone=public addservice=http
  • sudo firewallcmd permanent zone=public addservice=https
  • sudo firewallcmd reload

对于阿里云 ECS 服务器,还可以通过控制台安全组设置来开放相应端口。

2. 安装免费 SSL 证书(以 Let's Encrypt 为例)

首先安装 Certbot 客户端工具:

如何在CentOS 7上安装和配置Nginx服务器?-图3
(图片来源网络,侵权删除)
  • sudo yum install y epelrelease
  • sudo yum install y certbot python2certbotnginx

申请 SSL 证书并将网站添加到 Certbot 的管理中:

  • sudo certbot nginx d your_domain m your_email

Certbot 会自动配置 Nginx 使用 HTTPS,并设置自动续期任务(certbot renew)。

3. 配置 Nginx

删除默认的虚拟主机配置:

  • sudo rm /etc/nginx/conf.d/default.conf

/etc/nginx/conf.d/ 目录下创建新的虚拟主机配置文件default.conf

  • sudo vi /etc/nginx/conf.d/default.conf

添加以下内容:

  • server {
  • listen 80;
  • server_name your_domain www.your_domain;
  • location / {
  • root /usr/share/nginx/html;
  • index index.html index.htm;
  • }
  • }

配置 HTTPS:

  • server {
  • listen 443 ssl;
  • server_name your_domain www.your_domain;
  • ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
  • ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
  • ssl_session_timeout 5m;
  • ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  • ssl_ciphers ECDHERSAAES128GCMSHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
  • ssl_prefer_server_ciphers on;
  • location / {
  • root /usr/share/nginx/html;
  • index index.html index.htm;
  • }
  • }

保存并退出编辑器。

四、操作 Nginx

1. 启动 Nginx

使用 systemctl 命令启动 Nginx:

  • sudo systemctl start nginx

2. 停止 Nginx

停止 Nginx:

  • sudo systemctl stop nginx

3. 重启 Nginx

在修改配置文件后,通过重启 Nginx 使更改生效:

  • sudo systemctl restart nginx

4. 查看 Nginx 状态

检查 Nginx 运行状态:

  • sudo systemctl status nginx

或使用以下命令查看 Nginx 版本:

  • nginx v

5. 设置开机自启 Nginx

设置 Nginx 开机自启:

  • sudo systemctl enable nginx

取消开机自启:

  • sudo systemctl disable nginx

五、常见问题及解决措施

Q1. Nginx 无法启动,提示“[emerg] getpwnam(\"nginx\") failed”错误怎么办?

A1. 这个错误通常是因为系统中没有名为“nginx”的用户导致的,可以通过以下步骤解决:

1、创建 nginx 用户:

  • sudo useradd s /sbin/nologin M nginx

2、确保 nginx 用户拥有正确的权限:

  • sudo chown R nginx:nginx /var/lib/nginx

3、重新启动 Nginx:

  • sudo systemctl restart nginx

Q2. nginx 配置文件测试失败怎么办?

A2. Nginx 配置文件有误,可以使用以下命令进行测试:

  • sudo nginx t

根据提示信息修正配置文件中的错误,然后再次测试,直到显示“syntax is ok”和“test is successful”。

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

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