nginx

发布于:2025-03-20 ⋅ 阅读:(21) ⋅ 点赞:(0)

1nginx基础

1.1四个版本

  1. Nginx 开源版

    • 特点:这是 Nginx 的官方开源版本,完全免费,功能强大,支持高并发连接和低内存消耗。

    • 适用场景:适用于大多数需要高性能 Web 服务器和反向代理的场景。

    • 网址nginx

  2. Nginx Plus 商业版

    • 特点:这是 Nginx 的商业版本,提供了额外的功能和支持服务,如高级负载均衡、会话持久性、动态配置更新、实时监控和增强的安全性。

    • 适用场景:适用于企业级应用,需要高级功能和技术支持的场景。

    • 网址https://www.nginx.com

  3. OpenResty

    • 特点:OpenResty 是基于 Nginx 和 LuaJIT 的 Web 平台,集成了大量的 Lua 库和第三方模块,支持通过 Lua 脚本扩展功能。

    • 适用场景:适用于需要高度定制化和动态功能的 Web 应用,如 API 网关、动态 Web 服务等。

    • 网址http://openresty.org

  4. Tengine

    • 特点:Tengine 是由淘宝网发起的 Web 服务器项目,基于 Nginx 开发,增加了一些高级功能和优化,如动态模块加载、更灵活的配置等。

    • 适用场景:适用于需要高性能和高扩展性的 Web 服务,特别是大型网站和高流量场景。

    • 网址The Tengine Web Server

1.2 安装nginx

sudo yum clean all     # 清除缓存
sudo yum install nginx -y

1. 启动 Nginx 并设置开机自启

sudo systemctl start nginx
sudo systemctl enable nginx 

2. 开放防火墙端口

# 开放 80(HTTP)和 443(HTTPS)端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

3. 验证安装

访问服务器 IP 或域名:

curl http://localhost

如果看到 Welcome to nginx! 页面,说明安装成功。


4.配置文件路径

  • 主配置文件:/etc/nginx/nginx.conf

  • 默认网站目录:/usr/share/nginx/html

  • 自定义站点配置:/etc/nginx/conf.d/

 在安装的时候一直报仓库错误:因此在安装nginx时,加上了--disablerepo=local 参数

 上述是全局配置了nginx,因此在哪个目录下,都可以用nginx来启动,用nginx -s stop 来停止

 nginx -s quit 优雅的关闭,nginx -s reload 重新启动。

关闭全部防火墙:systemctl disable firewalld.service
 

1.3 目录结构

nginx的目录结构

1.4 nginx的配置文件 

nginx的最小配置文件

worker_processes  1; # 根据你的CPU核心数设置

events {
    worker_connections  1024; # 每个worker进程可以处理的最大连接数
}

http {
    include       mime.types; # 包含MIME类型定义
    default_type  application/octet-stream;

    sendfile        on; # 开启高效文件传输模式

    keepalive_timeout  65; # 长连接超时时间

    server {
        listen       80; # 监听的端口
        server_name  localhost; # 服务器名称

        location / {
            root   html; # 网站根目录,默认为Nginx安装目录下的html文件夹
            index  index.html index.htm; # 默认首页文件
        }

        error_page   500 502 503 504  /50x.html; # 错误页面
        location = /50x.html {
            root   html;
        }
    }
}

当然其实还可以再简化一点,但是没太必要。

worker_connections:表示一个worker_processes进程,同时可以处理的最大连接数。当然不是越大越好。

 include       mime.types; # 包含MIME类型定义

 当 Web 服务器(如 Nginx)向浏览器发送文件时,会根据 mime.types 中的映射关系,自动生成 Content-Type 响应头,告诉浏览器如何解析该文件(例如,以 HTML 格式渲染 .html 文件,以图片格式渲染 .jpg 文件)。