看一个小例子.
假设.
服务器ip. 1.1.1.1
域名. xxx.com
众所周知,直接访问域名会访问服务器的80端口. 如果要访问8080端口,就要加上端口号, 如 xxx.com:8080
但是这样太麻烦且不切实际. 仔细想想, 我们访问别人网站的时候, 并没有输入端口号, 而是通过类似 test.xxx.com
这样的域名, 前面的 test
就是我们需要设置的三级域名.
登录阿里云
本实例安全组 -> 添加安全组规则 填写需要开放的端口(8080)和授权对象(一般为0.0.0.0/0)
解析设置 -> 添加记录 填写主机记录(test)和记录值(1.1.1.1)
搞定上面2步, 我们就可以进入服务器进行配置, 为了方便好管理, 在服务器里下载
nginx
下载好了之后, 在根目录就有nginx_conf
文件夹, 进去后新建一个test.conf
文件
写入.
server {
listen 80;
server_name test.xxx.com;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://xxx.com:8080;
}
}
说明:
监听 80 端口
当访问的域名是
test.xxx.com
注释的参数 不知道是什么意思 自己百度就ok
设置代理路径
xxx.com:8080
我的理解是 它可以接受
*.xxx.com
, 然后再在nginx
中判断你传入的是什么三级域名, 在做转发处理
这时, 你又会有新的疑问了, 我想监听8080和8081端口要怎么设置呢? 比如
test.xxx.com
->1.1.1.1:8080
test2.xxx.com
->1.1.1.1:8081
你只需要修改一点就可以了
server {
listen 80;
server_name test.xxx.com;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://xxx.com:8080;
}
}
server {
listen 80;
server_name test2.xxx.com;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://xxx.com:8081;
}
}
上面配置代码有点重复, 应该有更好的写法, 我懒就不修改了
微信授权 配置cname
由于在慕课网上学习到微信支付授权, 需要到公众号配置安全接口, 我不会从阿里云做内网穿透, 只好从 natapp
买了个最便宜的隧道, 但是微信公众号需要域名备案, 只好把阿里云域名绑定到 natapp
中, 从阿里云转发到natapp
再转发到本机端口 (绕来绕去好麻烦),
其实配置很简单
注册并下载
natapp
, 购买 VIP-1 型的隧道 并绑定域名
前往阿里云配置
cname
解析设置 -> 添加记录 填写主机记录(test)和记录值(natapp
的服务器地址)
由于
linux
解压natapp.zip
后只有一个natapp
文件, 每次运行输入authtoken
很麻烦, 就可以写一个shell
小脚本
cd /home/null/ 你的路径
./natapp authtoken= 你的token
到这里, 访问
natapp
服务器 和cname
应该是同一个页面了
微信授权还没有测试, 就不说了😉