【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,一经查实,立即删除!

相关文章

Flink执行模式(批和流)如何选择

DataStream API支持不同的运行时执行模式(batch/streaming),你可以根据自己的需求选择对应模式。 DataStream API的默认执行模式就是streaming,用于需要连续增量处理并且预计会一直保持在线的无界(数据源输入是无限的)作业。 而batch执行模式则用于有界(输入有限)作业…

安卓环境配置及打开新项目教程,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 扩容前的磁盘大小 …

面试题整理2---Nginx 性能优化全方案

面试题整理2---Nginx 性能优化全方案 1. 调整工作进程数和线程数1.1 调整工作进程数1.2 调整进程的最大连接数 2. 配置Gzip压缩2.2 配置Gzip压缩 3. 配置缓存策略3.1 配置浏览器缓存时间3.2 配置代理服务器缓存时间 4. 优化文件访问方式4.1 使用sendfile()函数发送文件数据4.2 …

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

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

Halcon单相机+机器人=眼在手上#标定心得

首先,这个标定板肯定是放在我们要作业的工作台上的 目的 **1,得到标定物(工作台)与机器人底座之间的pose转换关系。2,得到相机与机器人末端tool的的转换关系。 两个不确定的定量 1,标定板与机器人底座b…

HTTP—03

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

【Jenkins】pipeline 的基础语法以及快速构建一个 jenkinsfile

Jenkins Pipeline 是 Jenkins 中的一个强大功能,可以帮助你实现自动化构建、测试、部署等流程。Jenkins Pipeline 使用一种名为 Pipeline DSL(Domain Specific Language)的脚本语言,通常以 Jenkinsfile 形式存在,用于定…

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…

第N7周:调用Gensim库训练Word2Vec模型

文章目录 一、准备工作1.安装Gensim库2.对原始语料分词 二、训练Word2Vec模型三、模型应用1.计算词汇相似度2.找出不匹配的词汇3.计算词汇的词频 四、总结 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、…

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

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

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

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

PC寄存器(Program Counter Register) jvm

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

OpenAI 2024:技术创新总结与展望

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…

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 子系统可让开发人员按原样运…

矩阵:Input-Output Interpretation of Matrices (中英双语)

矩阵的输入-输出解释:深入理解与应用 在线性代数中,矩阵与向量的乘积 ( y A x y Ax yAx ) 是一个极为重要的关系。通过这一公式,我们可以将矩阵 ( A A A ) 看作一个将输入向量 ( x x x ) 映射到输出向量 ( y y y ) 的线性变换。在这种…

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

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