使用nginx发布静态文件

起因

家中有个宽带有公网ip,动态的,为什么有公网ip还要买虚拟服务器呢?因为先买了个域名,大陆的ip地址绑到域名上无法正常解析。二级的免费域名呢,总是会招来一些攻击,导致宽带基本用不了。所以就取消了域名与ip绑定,但是这样一来,通过那个ip来访问的服务就不能用了。为什么不直接用虚拟服务器呢?带宽不如宽带的高,宽带的上行50,下行500,虚拟服务器上行10,下行100。

因为没有绑域名,导致很难记ip地址,导致跑在那上面的服务不好用。所以自己想着自己管理一个域名解析,又不想去搭dns,防止查水表,就只想写一个host文件来实现对宽带ip的域名绑定。

步骤

可以分为六步;

  1. 获取公网ip
  2. 生成host文件
  3. 更新到虚拟服务器
  4. 其他客户端从服务器下载host文件
  5. 将host文件应用到客户端
  6. 通过域名访问宽带服务

发布host文件到服务器

要想让客户端可以下载到这个host文件,需要在服务器上发布这个文件。由于服务器上已经跑了一个nginx,索性就用这个nginx来发布。

这里使用了智谱清言来帮我生成代码。我问他:

我有一个名为host的文件,这个文件在/var/www/html路径下,我想用nginx发布这个文件,让我通过domain.com/host获取文件内容

可以看到文字在快速的生成,生成了一堆代码和说明,比较有用的是这两行

1
2
alias /var/www/html/host;  # 指向你的 host 文件
try_files $uri$uri/ =404;

我开心的照着写了下,发现直接报404的错误,试着改了改文件权限,还是报错,后面在$uri$uri中间加了个空格,变成$uri $uri,再重载nginx,刷新页面,好了!

客户端使用host文件

对于windows系统,可以使用switchhost软件,linux桌面版也可以用,server不清楚。安卓系统可以用一个叫vitual host的APP,可以应用一个远程的host文件,然后通过域名访问服务。