我的网站是如何通过 Nginx 部署的?

我的网站是如何通过 Nginx 部署的?

你好,我是悟空。

我的网站 passjava.cn 已经稳定运行两年多了,购买的服务器是很便宜的那种,1个 CPU,1G 内存,1MB 带宽。我在这个服务器上部署了我的个人网站。

部署方式

项目是纯静态页面,部署在了一台服务器上。如下图所示,当我在浏览器访问这个域名时,请求会先经过 DNS 域名解析,拿到域名绑定的 IP 地址,而这个 IP 地址又是我购买的云服务器地址,在这个服务器上有网站的静态页面。

DNS 原理

当需要访问passjava.cn这个站点时,会在浏览器地址栏里输入www.passjava.cn这样一个URL。实际上我们想要浏览的网页内容都存放在互联网中的某台服务器上,而浏览器的任务就是找到我们想要访问的这台服务器的IP地址,然后向它请求内容。从这一刻起,DNS就开始工作了。其工作流程如图所示。

  • 用户在浏览器地址栏中输入想要访问的网站URL;
  • 该浏览器从上述URL中抽取出主机名 passjava.cn,并将这个主机名传给本机DNS应用的客户端;
  • DNS客户端向本地DNS服务器发送一个包含主机名的请求;
  • DNS客户端会收到来自本地DNS服务器的应答报文,其中含有对应于该主机的IP地址;
  • 一旦该浏览器接收到来自DNS的IP地址,它就可以向由该IP地址定位的服务器发起一个TCP连接,请求相应的内容;

Nginx 配置

以下是 Nginx 的配置:

ini 复制代码
server {
    listen       80;
    server_name  www.passjava.cn;
​
    location / {
        root   /home/ubuntu/docs;
        index  index.html;
    }
}

我开始以为这是一个正向代理的配置,其实并不是,这个配置只是一个简单的虚拟主机配置,用于托管静态网站。这个配置定义了一个 Nginx 虚拟主机,用于处理来自 www.passjava.cn 域名的 HTTP 请求,并提供静态网页。

配置说明

解释下这些配置项含义:

  1. server { ... }:这是一个 server 块,用于定义一个虚拟主机。每个 server 块通常用于配置一个不同的虚拟主机,以处理特定域名或 IP 地址的请求。
  2. listen 80;:这一行指定了监听的端口号,这里是 80,表示该虚拟主机将处理来自客户端的 HTTP 请求,这是 HTTP 的标准端口号。
  3. server_name www.passjava.cn;:这一行定义了虚拟主机所处理的域名。在这个例子中,虚拟主机将处理来自 www.passjava.cn 域名的请求。当客户端发送请求到这个域名时,Nginx 将使用这个 server 块中的配置来响应请求。
  4. location / { ... }:这是一个 location 块,它定义了如何处理特定 URI(统一资源标识符)路径的请求。在这里,location / 匹配所有请求的根路径。
  5. root /home/ubuntu/docs;:这一行指定了 Nginx 服务器上要提供的文件的根目录。当客户端请求根路径时,Nginx 将在 /home/ubuntu/docs 目录中查找文件来提供给客户端。
  6. index index.html;:这一行指定了默认的索引文件,当客户端请求的路径是一个目录时,Nginx 将尝试提供 index.html 文件作为默认文档。如果 /home/ubuntu/docs 目录中存在 index.html 文件,它将作为默认文档提供给客户端。

注意:正向代理配置通常涉及将客户端的请求代理到其他服务器,而不是提供自己的网页内容。正向代理的配置会包括一些额外的代理设置,用于将请求转发到目标服务器,而不是提供本地静态文件。

相关推荐
子兮曰26 分钟前
Bun vs Node.js 深度对决:跑分快 4 倍,真实业务只剩 3%,2026 年到底该怎么选?
前端·后端·typescript
计算机魔术师33 分钟前
终端用户
前端
码事漫谈1 小时前
把 AI 拆掉,你的系统还能跑吗?
前端·后端
默_笙2 小时前
⛵ 我用 React + TS 做了个"调色盘",顺便学会了企业级项目的目录架构
前端·javascript
预知同行2 小时前
从 MCP 到 CLI:AI Agent 工具链的架构演进与实战抉择
前端·面试
何智超2 小时前
AI 微前端性能优化之旅(中):重启
前端·vibecoding
渣波2 小时前
拒绝 Redux 样板代码:Zustand 核心原理与实战进阶指南(基础、异步与切片模式)
前端·javascript
C++、Java和Python的菜鸟2 小时前
第12章 前端Web进阶(Vue工程化+ElementPlus)
前端·javascript·vue.js
Hamm2 小时前
前端转Java+AI全栈?那我推荐几个实战开源项目给你
前端·后端·全栈
饼干哥哥3 小时前
十年数据分析经验,被我打包成了4个跨境VOC Skill
前端·数据分析·数据可视化