在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务

一、域名解析配置

要实现通过不同子域名访问静态文件和后端服务,首先需要进行域名解析。在域名注册商或 DNS 服务商处,为你的两个子域名 blog.xxx.comapi.xxx.com 配置 A 记录或 CNAME 记录。将它们的 A 记录都指向你服务器的 IP 地址。例如,如果服务器 IP 是 192.168.1.100,那么设置 blog.xxx.comapi.xxx.com 的 A 记录值为这个 IP。

二、Nginx 配置

(一)静态文件配置(blog.xxx.com

  1. 创建一个新的 Nginx 配置文件,或者编辑现有的配置文件。可以通过命令 sudo nano /etc/nginx/sites-available/blog(路径可能会因你的系统安装配置而有所不同)来创建或编辑。

  2. 配置内容如下:

    js 复制代码
    server {
        listen 80;
        server_name blog.xxx.com;
    
        location / {
            root /path/to/your/static/files; # 静态文件存放路径
            index index.html;
        }
    }

    这里监听 80 端口,server_name 指令指定子域名。location / 块指定了根目录,当用户访问 blog.xxx.com 时,会从指定的静态文件目录中查找资源。

(二)后端服务配置(api.xxx.com

  1. 同样,创建或编辑 Nginx 配置文件,如 sudo nano /etc/nginx/sites-available/api

  2. 配置示例:

    js 复制代码
    server {
        listen 80;
        server_name api.xxx.com;
    
        location / {
            proxy_pass http://localhost:your_backend_port; # 后端服务运行的本地端口
            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;
        }
    }

这里也是监听 80 端口,proxy_pass 指令将请求转发到本地运行的后端服务端口,其他 proxy_set_header 指令用于正确设置请求头,以便后端服务能够获取正确的客户端信息等。

通过以上步骤,你就可以实现在一台服务器上,通过不同的子域名分别访问静态文件和后端服务,并且都开启了 HTTPS 保护。

相关推荐
Maynor9965 小时前
OpenClaw 玩家必备:用 AI 自动追踪社区最新动态
java·服务器·人工智能
郝学胜-神的一滴5 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
“αβ”5 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
爱喝白开水a5 小时前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag
董世昌415 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6
Thera7775 小时前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++
呉師傅6 小时前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
吃杠碰小鸡6 小时前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone6 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
getapi6 小时前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu