【MAC】深入浅出 Homebrew 下 Nginx 的安装与配置指南

硬件:Apple M4 Pro 16寸
系统: macos Sonoma 15.1.1

Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛应用于全球各地的网站和企业应用中。本文将详细介绍如何在 macOS 环境下使用 Homebrew 安装、启动、管理以及优化配置 Nginx,帮助您快速搭建并运行自己的 Web 服务器。

以下是您提供的目录格式转换为 CSDN 博客目录格式的示例:


目录

    • 1. 安装 Nginx
    • 2. 启动与管理 Nginx
    • 3. 检查 Nginx 状态
    • 4. 配置 Nginx
      • 常用配置部分
    • 5. 验证 Nginx 是否运行
    • 6. 日志管理
    • 7. 高级配置示例
      • 说明:
    • 8. 总结


1. 安装 Nginx

在 macOS 上,使用 Homebrew 是安装和管理软件包的最佳方式。以下是安装 Nginx 的详细步骤:

  1. 确保 Homebrew 已更新

    在开始安装之前,首先更新 Homebrew 以获取最新的软件包信息。

    brew update
    
  2. 使用 Homebrew 安装 Nginx

    运行以下命令来安装 Nginx:

    brew install nginx
    

    安装过程中,Homebrew 会自动处理所有依赖关系,并完成 Nginx 的安装。

2. 启动与管理 Nginx

安装完成后,您可以通过 Homebrew 的 services 命令来启动和管理 Nginx 服务。

  1. 启动 Nginx

    使用以下命令启动 Nginx 服务:

    brew services start nginx
    

    该命令不仅会启动 Nginx,还会将其设置为开机自启动。

  2. 停止 Nginx 服务

    如果需要停止 Nginx 服务,可以使用以下命令:

    brew services stop nginx
    
  3. 重新启动 Nginx 服务

    在修改配置文件后,您可能需要重新启动 Nginx 以应用更改:

    brew services restart nginx
    

3. 检查 Nginx 状态

了解 Nginx 服务的当前状态对于调试和维护至关重要。使用以下命令可以查看所有通过 Homebrew 管理的服务及其状态:

brew services list

您将看到类似以下的输出:

nginx    started    user    /opt/homebrew/opt/nginx/bin/nginx -g daemon off;

这表示 Nginx 服务当前正在运行。

4. 配置 Nginx

Nginx 的配置文件位于 /opt/homebrew/etc/nginx/nginx.conf。您可以使用任何文本编辑器(如 nanovimTextEdit)进行编辑。以下是使用 nano 编辑配置文件的示例:

nano /opt/homebrew/etc/nginx/nginx.conf

常用配置部分

  1. server 块

    server 块用于配置服务器的行为,包括监听端口、服务器名称和根目录等。

    server {listen       80;server_name  aa.localhost;# 根目录设置location / {root   html;index  index.html index.htm;}
    }
    
    • listen 80;:Nginx 将监听 80 端口的 HTTP 请求。
    • server_name aa.localhost;:指定服务器名称为 aa.localhost
    • location / { ... }:定义根目录路径和默认首页文件。
  2. location 块

    location 块用于根据 URL 路径配置不同的处理方式。例如,处理静态文件、代理请求等。

    location /images/ {root   /var/www/;autoindex on;
    }
    

    该配置表示将 /images/ 路径下的请求映射到 /var/www/images/ 目录,并启用自动索引功能。

5. 验证 Nginx 是否运行

配置完成后,您可以通过以下方式验证 Nginx 是否正常运行:

  1. 使用浏览器访问

    在浏览器中打开 http://localhost:8080(默认端口是 8080),如果看到 Nginx 的欢迎页面,说明 Nginx 已成功运行。

    在这里插入图片描述

  2. 使用命令行检查

    您还可以使用 curl 命令来检查 Nginx 是否响应请求:

    curl http://localhost:8080
    

    如果返回 HTML 内容,说明 Nginx 正在运行。

6. 日志管理

Nginx 的日志文件对于调试和监控非常重要。默认情况下,日志文件位于 /opt/homebrew/var/log/nginx/ 目录下。

  1. 查看错误日志

    nano /opt/homebrew/var/log/nginx/error.log
    
  2. 查看访问日志

    nano /opt/homebrew/var/log/nginx/access.log
    

    您可以根据需要调整日志文件的路径和级别。在 nginx.conf 文件中,常见的日志配置如下:

    error_log /opt/homebrew/var/log/nginx/error.log;
    access_log /opt/homebrew/var/log/nginx/access.log;
    

    您可以根据需要修改日志路径或级别,例如:

    error_log /var/log/nginx/error.log warn;
    access_log /var/log/nginx/access.log;
    

7. 高级配置示例

以下是一个更复杂的 Nginx 配置示例,展示了如何配置虚拟主机、SSL 支持和反向代理。

server {listen       80;server_name  example.com www.example.com;# SSL 配置listen 443 ssl;ssl_certificate     /etc/nginx/ssl/example.crt;ssl_certificate_key /etc/nginx/ssl/example.key;# 反向代理配置location / {proxy_pass http://localhost:3000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}# 静态文件处理location /static/ {root /var/www/example.com/;}
}

说明:

  • SSL 配置:配置 HTTPS 支持,指定 SSL 证书和密钥路径。
  • 反向代理:将请求代理到本地的 3000 端口,适用于 Node.js 或其他后端服务。
  • 静态文件处理:将 /static/ 路径下的请求映射到 /var/www/example.com/static/ 目录。

8. 总结

通过本文的详细步骤,您可以轻松地在 macOS 上使用 Homebrew 安装、启动、管理和配置 Nginx。Nginx 的强大功能和灵活性使其成为构建高性能 Web 服务器的理想选择。无论是简单的静态网站还是复杂的反向代理架构,Nginx 都能提供卓越的性能和可靠性。

希望本文对您有所帮助,祝您在 Nginx 的使用中一切顺利!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/493082.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV 学习记录:首篇

最近在学习机器视觉,希望能通过记录博客的形式来鞭策自己坚持学完,同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV? OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…

git使用和gitlab部署

1.ci,cd,DevOps ci:持续集成:开发的代码集成到代码仓库 cd:持续交互:从代码仓库拉取代码到部署到测试环境 cd:持续部署:从代码仓库拉取代码到部署到生产环境 DevOps:开发写完的代码自动集成&#xff0c…

数据结构:B树与B+树

工具 数据结构与算法可视化在线演示 m阶 B树有以下特点: B-树,有时又写为B_树(其中的-或者_只是连字符,并不读作 B减树),一颗 m 阶(或度)的 B-树,或者本身是空树,否则必须满足以下…

CSDN数据大屏可视化【开源】

项目简介 本次基于版本3 开源 版本3开源地址:https://github.com/nangongchengfeng/CsdnBlogBoard.git 版本1开源地址:https://github.com/nangongchengfeng/CSDash.git 这是一个基于 Python 的 CSDN 博客数据可视化看板项目,通过爬虫采…

YOLOv8全解析:高效、精准的目标检测新时代——创新架构与性能提升

目录 前言 一、模型介绍 二、网络结构 Backbone改进 特征增强网络(neck) 检测头(head) 其它部分 三、Loss计算 四、性能表现 五、YOLOv8使用详解 添加模型 其它部分 创建数据集 数据标注 模型训练 模型预测 六、YOLOv8总结 前言 YOLO(You Only Lo…

重拾设计模式--模板方法模式

文章目录 一、模板方法模式概述二、模板方法模式UML图三、优点1代码复用性高2可维护性好3扩展性强 四、缺点五、使用场景六、C 代码示例1七、 C 代码示例2 一、模板方法模式概述 定义:定义一个操作中的算法骨架,而降一些步骤延迟到子类中。模板方法使得…

林子雨-大数据课程实验报告(一)

实验一:熟悉常用的Linux操作和Hadoop操作 一、实验目的 Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。 二、实验平台 操作系统…

时间序列异常值检测方法

文章目录 一、基于统计的方法1.1、标准差1.2、箱线图1.3、Z-Score法 二、基于机器学习算法的方法2.1、K-NN2.2、孤立森林 三、基于密度的方法3.1、LOF3.2、DBSCAN密度聚类 时间序列相关参考文章: 时间序列预测算法—ARIMA 时间序列预测算法—Prophet 时间序列分类任…

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

Moretl开箱即用日志采集

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

Go框架比较:goframe、beego、iris和gin

由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web"框架"为主。这里稍微打了个引号,因为大部分"框架"从设计和功能定位上来讲,充其量都只能算是一个组件&…

DB-GPT 智谱在线模型配置

LLM_MODELzhipu_proxyllm PROXY_SERVER_URLhttps://open.bigmodel.cn/api/paas/v4/chat/completions ZHIPU_MODEL_VERSIONglm-4 ZHIPU_PROXY_API_KEY70e8ec7113882ff5478fcecaa47522479.ExY2LyjcvWmqrTAf

【GCC】2015: draft-alvestrand-rmcat-congestion-03 机器翻译

腾讯云的一个分析,明显是看了这个论文和草案的 : 最新的是应该是这个 A Google Congestion Control Algorithm for Real-Time Communication draft-ietf-rmcat-gcc-02 下面的这个应该过期了: draft-alvestrand-rmcat-congestion-03

python:用 sklearn 构建线性回归模型,并评价

编写 test_sklearn_6.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 估计器构建线性回归模型 """ import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import rcParamsfrom sklearn import dataset…

系统思考—战略共识

当企业不增长的时候,是忙着救火,还是在真正解决问题? 最近遇到很多领导者,把精力放在“管理”上,希望通过抓细节提升效率,解决经营问题。结果呢?全公司上上下下忙成了一团乱麻,但不…

web3跨链桥协议-Nomad

项目介绍 Nomad是一个乐观跨链互操作协议。通过Nomad协议,Dapp能够在不同区块链间发送数据(包括rollups),Dapp通过Nomad的合约和链下的代理对跨链数据、消息进行验证、传输。其安全通过乐观验证机制和欺诈证明制约验证者实现&…

微信小程序实现画板画布自由绘制、选择画笔粗细及颜色、记录撤回、画板板擦、清空、写字板、导出绘图、canvas,开箱即用

目录 画板创建canvas绘制及渲染画笔粗细功能实现画笔颜色选择画笔痕迹撤回、板擦、画布清空canvas解析微信小程序中 canvas 的应用场景canvas 与 2D 上下文、webgl 上下文的关系图像的加载与绘制说明代码说明画板创建 canvas绘制及渲染 在wxml添加对应的canvas标签代码,并在j…

网站灰度发布?Tomcat的8005、8009、8080三个端口的作用什么是CDNLVS、Nginx和Haproxy的优缺点服务器无法开机时

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…

解锁BL后的K40降级

1 下载刷机工具 https://miuiver.com/miflash/ 2、下载刷机包 https://xiaomirom.com/series/ 下载ROM包,12.0.8比较好 3 打开第一步下载的刷机工具 打开首次安装驱动, 接下来先选择个重要的东西,如果不想重新上BL那就选择全部删除…

蓝桥杯刷题——day8

蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di个单位时间,即它最早可以于 Ti时刻开始降落&am…