当前位置: 首页 > news >正文

Mac使用Nginx设置代理,并禁用自带Apache

Mac自带Apache服务,并占用80端口,如果需要使用Nginx,需要禁用Apache并自己安装Nginx

一、禁用自带Apache

1.关闭Apache

sudo apachectl -k stop

如果出现如下报错:
httpd: Could not reliably determine the server’s fully qualified domain name, using pgydeMacBook-Pro.local. Set the ‘ServerName’ directive globally to suppress this message


(1) 打开apache配置目录:

vim /etc/apache2/httpd.conf

(2) 搜索:#ServerName www.example.com:80
        增加一行 ServerName localhost:80
(3) 重新启动Apache

sudo apachectl restart

(4) 关闭Apache

sudo apachectl -k stop

2.禁止apache自启动

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

二、使用 Homebrew 安装 Nginx

在 macOS 上使用 Homebrew 安装 Nginx 时,Nginx 的默认安装目录通常是 /usr/local/Cellar/nginx/。具体的安装路径可以通过以下命令查看:

brew --prefix nginx

1. Nginx 配置文件和目录

安装完成后,Nginx 的主要配置文件和目录通常位于以下位置:

  • 主配置文件/usr/local/etc/nginx/nginx.conf
  • 站点配置文件/usr/local/etc/nginx/servers/
  • 日志文件/usr/local/var/log/nginx/
  • HTML 文件/usr/local/var/www/

2. 安装 Nginx

使用 Homebrew 安装 Nginx:

brew install nginx

3. 启动和管理 Nginx

安装完成后,可以使用以下命令启动、停止和重启 Nginx:

# 启动 Nginxbrew services start nginx# 停止 Nginxbrew services stop nginx# 重启 Nginxbrew services restart nginx

4. 配置 Nginx

您可以编辑 Nginx 的主配置文件 /usr/local/etc/nginx/nginx.conf,或者在 /usr/local/etc/nginx/servers/ 目录中添加新的站点配置文件。

例如,创建一个新的站点配置文件 /usr/local/etc/nginx/servers/www.test.com.conf

server {listen 80;server_name www.test.com;# 将所有 HTTP 请求重定向到 HTTPS, 如果需要强制https开启这项# return 301 https://$host$request_uri;location / {proxy_pass http://localhost:9000;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;}
}server {listen 443 ssl;server_name www.test.com;ssl_certificate /usr/local/etc/nginx/certs/certificate.pem;ssl_certificate_key /usr/local/etc/nginx/certs/certificate.key;location / {proxy_pass http://localhost:9000;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;}
}

5. 验证配置并重启 Nginx

(1)验证 Nginx 配置是否正确(如果不确定配置是否正确这个命令很有效):

nginx -t

(2)如果配置正确,重启 Nginx 以应用更改:

brew services restart nginx

三、生成 ssl/自签名 证书

在你指定的文件夹中打开命令行工具

# x509 根据现有的证书请求生成自签名根证书
# -days 设置证书的有效天数
# rsa:2048 现代的 SSL/TLS 配置通常要求至少 2048 位的密钥
openssl req -newkey rsa:2048 -nodes -keyout www.test.com.key -x509 -days 365 -out www.test.com.crt

Country Name (2 letter code) [国家]:CN

State or Province Name (full name) [省份]:Beijing

Locality Name (eg, city) [城市]:Beijing

Organization Name (eg, company) [组织/公司]:test

Organizational Unit Name (eg, section) [部门/单位]:test

Common Name (eg, fully qualified host name) [域名]:www.test.com

Email Address [邮箱]:test@outlook.com

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • mac安装JetBtains全家桶新版本时报错:Cannot start the IDE
  • 关于 ModuleNotFoundError: No module named ‘Crypto‘
  • AngularJS 模块
  • 数字IC设计\FPGA 职位经典笔试面试整理--基础篇1
  • C#基础(14)冒泡排序
  • 【架构设计】多级缓存:应用案例与问题解决策略
  • Unity DOTS系列之IJobChunk来迭代处理数据
  • python教程修订版
  • 当电子设计竞赛照进生活!
  • 4G 网络下资源加载失败?一次运营商封禁 IP 的案例分享
  • 【RabbitMQ】死信队列、延迟队列
  • 什么是电商云手机?可以用来干什么?
  • 2025年SEO策略:如何优化您的知识库?
  • ComfyUI中缺失节点安装一点小小注意事项
  • 详解常见排序
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • css的样式优先级
  • Java Agent 学习笔记
  • JavaScript HTML DOM
  • JS题目及答案整理
  • magento 货币换算
  • quasar-framework cnodejs社区
  • 产品三维模型在线预览
  • 前端学习笔记之观察者模式
  • 前嗅ForeSpider教程:创建模板
  • 如何在 Tornado 中实现 Middleware
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我建了一个叫Hello World的项目
  • 小程序button引导用户授权
  • 国内开源镜像站点
  • # windows 安装 mysql 显示 no packages found 解决方法
  • # 数据结构
  • #70结构体案例1(导师,学生,成绩)
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (02)Unity使用在线AI大模型(调用Python)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (AngularJS)Angular 控制器之间通信初探
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)3D模板阴影原理
  • (转)为C# Windows服务添加安装程序
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 8.0 发布到 IIS
  • .NET Micro Framework初体验
  • .net 使用ajax控件后如何调用前端脚本
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET的微型Web框架 Nancy
  • .NET与 java通用的3DES加密解密方法
  • .NET中winform传递参数至Url并获得返回值或文件
  • @RequestMapping用法详解