Nginx在Linux中的配置及维护全教程

 更新时间:2025年02月23日 08:22:51   作者:百锦再@新空间代码工作室  
Nginx是一款高性能的开源HTTP和反向代理服务器,以其高并发处理能力和低资源消耗而闻名,它支持多种功能,Nginx的配置文件基于文本,易于理解和修改,使其成为 Web 开发和运维人员的首选工具之一,本文给大家介绍了Nginx在Linux中的配置及维护全教程

一、Nginx 简介

Nginx 是一款高性能的开源 HTTP 和反向代理服务器,以其高并发处理能力和低资源消耗而闻名。它支持多种功能,包括负载均衡、反向代理、静态文件服务等。Nginx 的配置文件基于文本,易于理解和修改,使其成为 Web 开发和运维人员的首选工具之一。

二、Nginx 的安装

1. 安装前的准备

在安装 Nginx 之前,确保你的 Linux 系统已经安装了必要的编译工具和库。如果未安装,可以使用以下命令安装:

yum -y install gcc gcc-c++ autoconf automake make

2. 安装 Nginx

以下是基于源码安装 Nginx 的步骤:

  • 下载 Nginx 源码包:
wget http://nginx.org/download/nginx-1.24.0.tar.gz
  • 解压源码包:
tar -zxvf nginx-1.24.0.tar.gz
  • 进入解压后的目录:
cd nginx-1.24.0
  • 配置 Nginx,指定安装路径:
./configure --prefix=/usr/local/nginx
  • 编译并安装:
make && make install
  • 启动 Nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  • 检查 Nginx 是否启动成功:
ps -ef | grep nginx
  • 如果看到 nginx: master process 和 nginx: worker process,则表示 Nginx 已成功启动。

3. 设置 Nginx 开机自启

将 Nginx 添加到系统的启动脚本中:

vim /etc/rc.d/rc.local

在文件末尾添加以下内容:

/usr/local/nginx/sbin/nginx

保存并退出。

三、Nginx 配置文件详解

Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf,以下是配置文件的主要部分及其说明:

1. 全局配置

user nobody;  # 指定运行 Nginx 的用户
worker_processes 1;  # 工作进程数,建议设置为 CPU 核心数

2. events 块

events {
    worker_connections 1024;  # 每个工作进程的最大连接数
}

3. http 块

http {
    include mime.types;  # 包含文件类型定义
    default_type application/octet-stream;  # 默认文件类型
    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 的常用命令

启动 Nginx

/usr/local/nginx/sbin/nginx

停止 Nginx

/usr/local/nginx/sbin/nginx -s stop

平滑重启 Nginx

/usr/local/nginx/sbin/nginx -s reload

检查配置文件语法

/usr/local/nginx/sbin/nginx -t

五、Nginx 的维护与优化

1. 日志管理

Nginx 的日志默认存储在 /usr/local/nginx/logs 目录下。可以通过配置文件中的 access_log 和 error_log 指令指定日志文件的位置和格式。例如:

access_log /usr/local/nginx/logs/access.log main;
error_log /usr/local/nginx/logs/error.log warn;

2. 性能优化

  1. 调整工作进程数: 将 worker_processes 设置为 CPU 核心数。

  2. 优化连接数: 增大 worker_connections 的值以支持更多并发连接。

  3. 启用 Gzip 压缩: 在 http 块中添加以下配置:

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_types text/plain application/javascript application/json;

3. 安全配置

限制访问: 使用 allow 和 deny 指令限制对特定资源的访问。例如:

location /admin {
    allow 192.168.1.0/24;
    deny all;
}

隐藏版本信息: 在 http 块中添加以下配置:

server_tokens off;

六、Nginx 的高级应用

1. 反向代理

Nginx 可以作为反向代理服务器,将请求转发到后端服务器。例如:

server {
    listen 80;
    server_name example.com;
 
    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

2. 负载均衡

Nginx 可以实现简单的负载均衡功能。例如:

upstream backend {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}
 
server {
    listen 80;
    server_name example.com;
 
    location / {
        proxy_pass http://backend;
    }
}

七、常见问题及解决方案

  1. 502 Bad Gateway 错误

    • 原因:后端服务未启动或 Nginx 无法连接到后端服务。

    • 解决方法:检查后端服务是否正常运行,并确保 Nginx 的 proxy_pass 配置正确。

  2. 403 Forbidden 错误

    • 原因:文件权限不足或 root 指令配置错误。

    • 解决方法:检查文件权限,并确保 root 指令指向正确的目录。

  3. Nginx 无法启动

    • 原因:配置文件语法错误。

    • 解决方法:使用 /usr/local/nginx/sbin/nginx -t 检查配置文件语法。

八、总结

Nginx 是一款功能强大的 Web 服务器和反向代理工具。通过合理配置和维护,可以实现高性能、高可用的 Web 服务。本教程介绍了 Nginx 的安装、配置、优化和维护方法,希望能帮助你更好地使用 Nginx。

以上就是Nginx在Linux中的配置及维护全教程的详细内容,更多关于Nginx Linux配置及维护的资料请关注脚本之家其它相关文章!

相关文章

  • Nginx中的主要应用场景解读

    Nginx中的主要应用场景解读

    这篇文章主要介绍了Nginx中的主要应用场景解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • centos7下基于nginx+uwsgi部署Django项目的实现

    centos7下基于nginx+uwsgi部署Django项目的实现

    Django是一个开源的Web应用框架,使用Python语言编写,主要用于搭建Web项目,本教程介绍如何在centos7下基于nginx+uwsgi部署Django项目的实现,感兴趣的可以了解一下
    2024-04-04
  • 基于Nginx实现访问控制、连接限制

    基于Nginx实现访问控制、连接限制

    Nginx自带的模块支持对并发请求数进行限制, 还有对请求来源进行限制。可以用来防止DDOS攻击。这篇文章主要介绍了基于Nginx实现访问控制、连接限制的相关资料,需要的朋友可以参考下
    2019-11-11
  • Nginx更改conf配置文件的代码详解

    Nginx更改conf配置文件的代码详解

    本文主要介绍了Nginx如何更改conf配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作有一定的参考学习价值,需要的朋友们下面跟着小编来一起来学习吧
    2024-02-02
  • 基于Nginx的衍生版服务器Tengine简介

    基于Nginx的衍生版服务器Tengine简介

    这篇文章主要介绍了基于Nginx的衍生版服务器Tengine简介,本文讲解了Nginx的特性、Tengine的特性、架构和扩展性等内容,需要的朋友可以参考下
    2015-03-03
  • nginx中封禁ip和允许内网ip访问的实现示例

    nginx中封禁ip和允许内网ip访问的实现示例

    Nginx不仅仅只是一款反向代理和负载均衡服务器,本文主要介绍了nginx中封禁ip和允许内网ip访问的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    2022-03-03
  • nginx高可用集群的实现过程

    nginx高可用集群的实现过程

    这篇文章主要介绍了nginx高可用集群的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • nginx 开启 pathinfo的过程详解

    nginx 开启 pathinfo的过程详解

    这篇文章主要介绍了nginx 开启 pathinfo的过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • centos7系统下nginx安装并配置开机自启动操作

    centos7系统下nginx安装并配置开机自启动操作

    这篇文章主要介绍了centos7系统下nginx安装并配置开机自启动操作方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • 通过Nginx反向代理实现IP访问分流的示例代码

    通过Nginx反向代理实现IP访问分流的示例代码

    本篇文章主要介绍了通过Nginx反向代理实现IP访问分流的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论