从被锁公司门外,手机都在屋里这一案例,教你使用Nginx反向代理一个手机号静态页面解决困惑

1,207 阅读2分钟

额,昨天(6.10)晚上9点半,收拾收拾东西准备回家了,把眼睛摘掉,出去洗了个脸,回来的时候,门上人脸识别装置一直识别不上去,也是很尴尬,手机都在里面,身上什么东西都没有,怎么办呢,我想找个人借个手机还是很容易的,但是悲哀的是我没有记下任何人的手机号,这些信息都在我的手机里面

于是乎在这个事情解决之后,我决定做一个网站记录我手机上一些常用的手记号,之后我直接访问这个网站就能查看手机号了,也就是说,我只要借到手机,然后就能访问网站找到手机号,那么开始吧


实现起来,就跟做菜一样,要先准备一些材料

  • 前提:
    • 要有一个云服务器
    • 要有一个备案的域名
    • 要有CDN解析

首先是在云服务器上安装Nginx

安装:yum install nginx
启动nginx:service nginx start
开机自启:systemctl enable nginx.service

// 然后访问外网网址,就能看到Nginx的启动页面了(现在启动的是80端口,默认端口)

我的域名解析是腾讯云解析,在云解析下面的域名添加一个子域名


上面的完成之后,我们准备一个有手记号的静态页面


将静态页面上传到你的云服务器(我的是Centos7),使用的工具如下,你们也可以用自己的方式,反正传到自己的云服务器上就OK,我是传到了云服务器的根目录下的 cellphones文件夹下的 static文件下


文件传上去之后,安装node,启动一个静态代理

  • 设置安装源:curl --silent --location rpm.nodesource.com/setup_11.x | bash -
  • 安装node:yum install -y nodejs
  • 安装好了之后,在 /cellphones目录下安装 Express:npm install express --save
  • 在 /cellphones 下面建立一个 app.js文件用于启动,下面是里面的代码
var express = require('express')
var app = express()
app.use(express.static('static')) // 代理静态文件夹
app.listen(8989, () => console.log('Example app listening on port 8989!'))

这些准备好了之后开始配置Nginx


配置Nginx反向代理(在 /etc/nginx/conf.d/ 下建一个文件 cellphones.conf然后书写)

其中的原理是:cellphones.itzkp.com 在解析的时候,会解析成 ip,也就是默认80端口,然后Nginx80端口 会根据下面的配置,找到 cellphones.itzkp.com对应的具体ip是 8989端口,然后就能访问了

server {
        listen 80;
        server_name cellphones.itzkp.com;

        location / {
         proxy_pass http://140.143.3.244:8989;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Host $http_host;
         proxy_set_header X-Nginx-Proxy true;
         proxy_redirect off;
        }
}

  • 重启Nginx:nginx -s reload
  • 进入到 /cellphones 目录下,运行 node app.js
  • 访问:cellphones.itzkp.com(这是个示例)

后记:可以使用pm2启动node程序,这样更好


当然这样可能还是不保险,万一以后再丢了怎么办,还是建个群保险,保险点好