【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.mzph.cn/bicheng/64724.shtml

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

相关文章

安卓环境配置及打开新项目教程,2024年12月20日最新版

1.去官网下载最新的Android Studio,网址:https://developer.android.com/studio?hlzh-cn 2.下载加速器,注册账号,开启加速器。网址:放在文末。 3.下载安卓代码,项目的路径上不能有中文,特别是…

VMware虚拟机Ubuntu 18.04版本 磁盘扩容

一、版本配置 虚拟机版本:VMware WORKSTATION 16 PRO Ubuntu版本:Ubuntu 18.04 二、磁盘大小介绍 目的:磁盘扩容(20G----->100G),从20G扩到100G 查看磁盘大小命令:df -h 扩容前的磁盘大小 …

10. 虚拟机VMware Workstation Pro下共享Ubuntu和Win11文件夹

本文记录当前最新版虚拟机VMware Workstation Pro(2024.12)如何在win11下共享文件,以实现Windows与Ubuntu互传文件的目的。 1. 创建共享文件夹 1.1 先关闭虚拟机的客户机,打开虚拟机设置 1.2 在虚拟机设置界面找到“选项”->“…

HTTP—03

触发 GET 请求 1)直接在浏览器 地址栏 输入 URL,此时构成了一个GET请求 2)HTML中的一些特殊标签可能会触发 例如 img,a,link,script... 3)通过Form表单触发(Form本质也是一个HTML标签) 4&#xff0…

2024年《网络安全事件应急指南》

在这个信息技术日新月异的时代,网络攻击手段的复杂性与日俱增,安全威胁层出不穷,给企事业单位的安全防护能力带 来了前所未有的挑战。深信服安全应急响应中心(以下简称“应急响应中心”)编写了《网络安全事件应急指南》…

MobaXterm 连接不上VMware 的Ubuntu 虚拟机

想在window11的笔记本上通过VMWare安装Ubuntu操作系统,但是在两个桌面见来回切换,十分的麻烦,于是通过远程服务访问客户端软件MateXterm来访问虚拟机的Linux系统,但是从CSDN上搜到的教程都没有成功,于是,尝…

MapReduce的shuffle过程详解

文章目录 MapReduce的shuffle过程详解一、引言二、Shuffle过程详解1、Map端Shuffle1.1、分区(Partition)1.2、排序(Sort)1.3、分割(Spill) 2、Reduce端Shuffle 三、使用示例四、总结 MapReduce的shuffle过程…

AI图像生成利器:Stable Diffusion 3.5本地运行与远程出图操作流程

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 本篇文章将介绍如何在Windows系统电脑本地部署Stable Diffusion 3.5,并利用cpolar…

【容器】k8s学习笔记原理详解(十万字超详细)

Pod详解 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个: 可以以它为依据&am…

​ 阅读英文文献时,有哪些提高理解效率的方法?

当我们拿起一篇文献开始阅读时,就像是打开了一扇通往未知世界的大门。但别急着一头扎进去,咱们得像个侦探一样,带着疑问去探险。毕竟,知识的海洋深不可测,不带点“装备”怎么行?今天就聊聊,平时…

PC寄存器(Program Counter Register) jvm

在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色,它是JVM执行引擎的核心组成部分之一。以下是PC寄存器在JVM中的具体角色和职责: 指令执行指针: PC寄存…

WSL Ubuntu

文章目录 1. 概述1.1 什么是适用于 Linux 的 Windows 子系统1.2 什么是 WSL 21.3 WSL 2 中的新增功能1.4 比较 WSL 2 和 WSL 1 2. 参考资料3. 修改存储位置4. 网络访问 1. 概述 1.1 什么是适用于 Linux 的 Windows 子系统 适用于 Linux 的 Windows 子系统可让开发人员按原样运…

网络安全概论——入侵检测系统IDS

一、入侵检测的概念 1、入侵检测的概念 检测对计算机系统的非授权访问对系统的运行状态进行监视,发现各种攻击企图、攻击行为或攻击结果,以保证系统资源的保密性、完整性和可用性识别针对计算机系统和网络系统或广义上的信息系统的非法攻击&#xff0c…

登山第十六梯:深度恢复——解决机器人近视问题

文章目录 一 摘要 二 资源 三 内容 一 摘要 深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而,现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整,从而成为机器人性能的瓶颈。在这项工作中,提出了 一个基于学习的立体…

【NLP】序列到序列(seq2seq)建模工具fairseq使用详解

文章目录 一、fairseq简介二、安装方式2.1 pip安装2.2 源码安装 三、fairseq命令工具3.1 fairseq-preprocess3.2 fairseq-train3.3 fairseq-generate3.4 fairseq-interactivate3.5 fairseq-score3.6 fairseq-eval-lm 4. 常见报错报错1 参考资料 一、fairseq简介 fairseq 是 Fa…

108. 将有序数组转换为二叉搜索树(java)

题目描述: 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,…

flink集群搭建 详细教程

一、环境准备 1、准备三台服务器 三台服务器ip 115.120.227.194 jobmanger 123.60.154.232 taskmanger 36.111.173.249 taskmanger 2、给三台主机分别配置主机名 #第一台机器 hostnamectl set-hostname hadoop01#第二台机器 hostnamectl set-hostname hadoop02#第三台…

C# opencvsharp 流程化-脚本化-(2)ROI

ROI ROI也是经常需要使用的方法。特别是在图像编辑中。ROI又称感兴趣的区域,但是图像是矩阵是矩形的,感兴趣的是乱八七糟的,所以还有一个Mask需要了解一下的。 public class RoiStep : IImageProcessingStep{public ImageProcessingStepType…

修改vscode设置的原理

转载请标明出处:小帆的帆的专栏 修改vscode设置 首先需要理解的是,vscode的系统设置和插件设置都是通过settings.json文件管理的。 vscode中有三个Settings,三个Settings分别对应三个settings.json文件 Default Settings:默认…

【我的 PWN 学习手札】IO_FILE 之 stdin任意地址写

我们知道,stdin会往“缓冲区”先读入数据,如果我们劫持这个所谓“缓冲区”到其他地址呢?是否可以读入数据到任意地址?答案是肯定的。 注意!代码中的“-------”分隔,是为了区分一条调用链上不同代码片段&am…