初用nginx

205 阅读1分钟

mac系统

一、需确保电脑有装Homebrew工具

安装指令

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

验证指令

brew --version

-输出以下内容及表示安装成功-

Homebrew 4.1.11
Homebrew/homebrew-core (git revision 2a3b4c5d6e; last commit 2023-07-01)

二、下载nginx

安装指令

brew install nginx

查看nginx配置信息

brew info nginx

输出以及注解


==> nginx: stable 1.29.0 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
Installed
/usr/local/Cellar/nginx/1.29.0 (27 files, 2.5MB) *  // nginx的安装目录
  Poured from bottle using the formulae.brew.sh API on 2025-07-11 at 15:41:39
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb   // nginx的安装来源
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✔
==> Options
--HEAD
	Install HEAD version
==> Caveats
Docroot is: /usr/local/var/www  // 根目录

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.   //nginx的配置文件及默认端口8080

/* nginx will load all files in /usr/local/etc/nginx/servers/.

To restart nginx after an upgrade:
  brew services restart nginx
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/nginx/bin/nginx -g daemon\ off\;
==> Analytics */ // nginx将在servers目录下去加载所有的文件,且如果在此目录下,可以通过nginx命令来启动nginx服务
install: 14,018 (30 days), 42,404 (90 days), 161,836 (365 days)
install-on-request: 14,009 (30 days), 42,353 (90 days), 161,526 (365 days)
build-error: 1 (30 days)

nginx常用指令

# 启动 Nginx
brew services start nginx

# 停止 Nginx
brew services stop nginx

# 重启 Nginx
brew services restart nginx

# 重新加载配置
nginx -s reload

# 查看服务状态
brew services list | grep nginx

# 查看nginx的安装目录
open /usr/local/etc/nginx/
// 打开一个文件窗口
// 打开的文件夹里会有很多个文件,我们只需要留意nginx.conf、servers两文件即可
// nginx.conf为nginx的主配置文件
// servers文件夹里是用来存放我们需要的不同服务,及副配置文件

# 控制台上打开文件并进行编辑
nano /usr/local/etc/nginx/文件名

注意:brew services start nginx 启动 Nginx 服务时,只会加载默认的配置文件(以及默认配置中通过 include 指令引入的其他配置),而不会自动加载所有的 .conf 文件

三、简单使用

使用指令打开nginx的安装目录

open /usr/local/Cellar/nginx
// 会弹出一个文件框,里面会有一个带版本号的nginx的文件夹,我们直接点进去,然后再进入html文件夹里,就会看到有两个html文件,分别为50.html、index.html。
// index.html文件就是当我们启动nginx时,然后在浏览器访问http://localhost:8080/地址的页面,到此时即表示我们成功了。

四、正向代理的使用

1、不修改主配置,创建新的servers服务

创建新的独立配置文件

nano /usr/local/etc/nginx/servers/example.com.conf

添加以下内容

server {
    listen 8080;  // 待会浏览器访问的端口,使用80浏览器访问时可以不带端口
    server_name example.com; // 访问的域名
    root "/Users/swy/Desktop/设备图表"; // 根文件路径,即静态资源等存放目录(我这里在设备图表文件夹里是存在in.html文件的)
    index index.html in.html index.htm; // 设置默认页,首先找index.html访问,没有再找in.html,以此类推
    
    // alias "/Users/swy/CS-项目(后端)/ims/uploadPath/image/";  # 末尾斜杠也要加
    // 我们可以使用`alias`替换`root`; alias会直接替换匹配到的`location`中的路径,然后再拼接上location剩余的路径;而root是在自己路径后直接拼接`location`的路径(包括匹配到的路径)(这是两者的核心区别)。
    // 当我们使用alias时不需要 index,因为是直接访问文件
    
    // `rewrite` 和 `return`
    // 当我们想访问 `http://localhost/profile/upload` 时直接返回这张图片,可以用 `rewrite` 或 `return`,如下
    // root "/Users/swy/CS-项目(后端)/ims/uploadPath/image";
    // rewrite ^ /598d412c-059d-4b1b-98b0-32e7b155564a.png break;  # 重写路径
    
    location / {
        try_files $uri $uri/ =404;  # 处理静态文件
    }
    
    # 其他配置(如 PHP、反向代理等)
}

配置好,并保存退出,然后检查配置文件语法

nginx -t
// 若看到 syntax is ok 和 test is successful,就表明配置正确。

重载 Nginx 服务

nginx -s reload
2、修改本地映射

如果你想在本地测试这个配置,还需要修改 /etc/hosts 文件,将 example.com 指向本地:

编辑 hosts 文件

sudo nano /etc/hosts

添加域名映射,在文件中加入下面这行内容:

127.0.0.1 example.com www.example.com
// 保存后访问测试
// 打开浏览器,访问 http://example.com:8080,查看网站能否正常显示你所指定的内容。