掘金 后端 ( ) • 2024-04-23 18:18

1. 安装 Nginx

下载适用于 Windows 的 Nginx 安装包,通常为 .zip 格式。可以从 Nginx 官方网站(https://nginx.org/en/download.html)获取最新稳定版。解压缩至一个合适的位置,如 C:\nginx

2. 配置 Nginx

打开 Nginx 的配置文件,通常位于解压目录下的 conf/nginx.conf。使用文本编辑器(如 Notepad++)打开该文件。找到 http 块内的 server 块(可能需要新建一个),配置一个用于托管静态博客的虚拟主机。例如:

1http {
2    ...
3    
4    server {
5        listen       80;
6        server_name  your_domain.com;  # 替换为您的域名或服务器 IP
7        root         C:/nginx/html/blog;  # 博客文件根目录,可自定义
8
9        location / {
10            try_files $uri $uri/ =404;
11        }
12    }
13
14    ...
15}

这里,listen 指定监听的端口(通常是 80),server_name 是您的域名(若未购买或暂不使用,可以先用服务器的公网 IP),root 设置静态博客文件的实际路径。

3. 复制静态博客文件

将本地准备好的静态博客文件(包括 HTML、CSS、JavaScript、图片等)复制到上述 root 指定的目录(如 C:\nginx\html\blog)。确保文件结构保持原样。

4. 启动 Nginx

在命令提示符(以管理员身份运行)中,切换到 Nginx 的解压目录(如 C:\nginx),然后执行以下命令启动 Nginx:

nginx.exe

如果一切正常,Nginx 应该已经开始运行,并监听指定端口。您可以通过浏览器访问服务器的公网 IP 或已配置的域名来验证是否能看到您的静态博客。

5.nginx配置反向代理

打开 Nginx 的配置文件,通常位于解压目录下的 conf/nginx.conf。使用文本编辑器(如 Notepad++)打开该文件。找到 http 块内的 server 块上面的步骤2中已经配置过静态页面

server {
    listen 80;  # 监听的端口,这里假设是 HTTP 的默认端口 80
    server_name your_domain.com;  # 替换为您的域名或 IP 地址

    location /api/ {
        proxy_pass http://127.0.0.1:8000/;  # 替换为目标服务的实际地址和端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 其他可能需要的代理设置,如缓冲、重试等
    }
}

解释一下各部分的作用:

  • listen: 指定 Nginx 服务器监听的端口。
  • server_name: 设置要代理的域名或 IP 地址。如果有多个域名,可以用空格分隔。
  • location /api/: 定义一个匹配/api/的规则块(这里可以根据自己的需求写对应的路径)。
  • proxy_pass: 设置反向代理的目标 URL,即您要转发请求到的实际后端服务地址。这里假设您的博客服务运行在本机的 8000 端口。
  • proxy_set_header:设置转发请求时要修改或添加的 HTTP 头部。常见的有:
  • Host: 保持原始请求的主机名。
  • X-Real-IP: 设置客户端的真实 IP 地址。
  • X-Forwarded-For: 用于记录客户端 IP(若有前置代理,会包含整个请求链路的 IP 列表)。

注意:

如果您的服务器有防火墙,请确保开放 80 端口供外部访问。 若打算长期运行,您可能需要考虑将 Nginx 添加为 Windows 服务,以便自动启动。这通常需要使用第三方工具(如 NSSM)或编译带有 Windows 服务支持的 Nginx 版本。 对于生产环境,建议根据实际需求进一步配置 SSL(HTTPS)、日志记录、性能优化等项。

nginx 常用命令

windows:

  • 启动Nginx:start nginx
  • 查看Nginx版本:nginx -v
  • 查看Nginx版本详细信息:nginx -V
  • 停止Nginx服务:nginx -s stop 或者 nginx -s quit
  • 重新加载配置(当修改了Nginx的配置文件后,可以重新加载配置,无需重启Nginx):nginx -s reload
  • 查看Nginx进程:tasklist /fi "imagename eq nginx.exe"
  • 彻底停止Nginx服务:taskkill /f /t /im nginx.exe

macOS:

  • Nginx 版本号:nginx -v
  • 详细信息:nginx -V
  • 启动 Nginx: (1). 如果通过 Homebrew 安装并管理 Nginx:brew services start nginx (2).或直接运行可执行文件(通常在 /usr/local/nginx/sbin/nginx 或类似位置):sudo /usr/local/nginx/sbin/nginx
  • 停止 Nginx: (1)使用 Homebrew 服务管理:brew services stop nginx (2)或发送停止信号:sudo nginx -s stop
  • 重载 Nginx 配置: (1)使用 Homebrew:brew services reload nginx (2)或直接发送重载信号:sudo nginx -s reload
  • 检查配置文件语法:nginx -t
  • 列出 Nginx 进程:ps aux | grep nginx
  • 查看 Nginx 服务状态: 如果通过 Systemd 或其他服务管理器安装,使用相应的命令(如 systemctl status nginx)。否则,可能需要手动检查日志文件(如 /usr/local/var/log/nginx/access.log 和 /usr/local/var/log/nginx/error.log)。