本篇主要着手于解决上一篇文章中没有解决的问题,对于使用https的网站,如果直接应用api,轻则出现不安全警告,重则因为跨域而无法访问。
那么首先我们需要解决跨域问题,这里就要应用到nginx的反代,先介绍一下反代相关的概念。
简介
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
可以理解为正向代理不需要知道客户端是谁,而反向代理则反之,对于客户端来说,并不知道是哪一台服务器作出的反应。而nginx的反代功能十分强大,可以应用在多个二级域名指向同一个ip等方面。
nginx反向代理配置
首先找到nginx的配置文件nginx.conf,一般在 /usr/local/nginx/conf
路径下,如果不确定可以使用find指令找到对应的位置。
find \ -name "nginx.conf"
写入反向代理规则
如果你之前已经使用nginx搭建了wordpress博客等页面的话,相信已经可以看到几个server代码块。我们要做的是写入同样的代码块,基础部分可以参考往期的文章Nginx配置Https访问。如果依然存在疑问可以评论告诉我。
举个例子,如果你希望输入https:/domain/api可以转到api开放的端口,那么便可以加入下面的代码块
server
{
listen 80; #你想要监听的端口,http默认80,https默认443
#对应http://127.0.0.1:1207/api
location \api
{
proxy_pass http://127.0.0.1:1207; #以之前的api为例
}
#对应http://127.0.0.1:1207
location \
{
proxy_pass http://127.0.0.1:1207;
}
}
这里需要区分清楚,我之前就是因为一直访问/api路径导致后端无法有效工作,还在其他地方寻找问题,诸如redis的端口等。
这样简单的反向代理就完成了。而我们需要给OPTION请求权限,因此可选择加入add_header Access-Control-Allow-Origin *;
。
二级域名解析
为二级域名添加一条A记录解析,解析到服务器ip,当访问对应的二级域名时,实现对应端口的跳转,这里就需要设置nginx的server_name
一项。
将你原来的服务器地址设置为www.domain.com
和domain.com
,而api的server块中则填入danmu.domain.com
(这里以danmu为例,实际中可为任意解析的二级域名)
server
{
listen 80;
server_name danmu.toshokan.top;
location \
{
proxy_pass http://127.0.0.1:1207;
}
}
server
{
listen 80;
server_name toshokan.top www.toshokan.top;
location
index index.html index.htm index.php;
root /your/path;
}
这样就可以通过二级域名访问对应的端口了。
https设置
首先你需要申请对应二级域名的证书,可以在阿里云或者其他地方免费申请。对于申请的步骤不做赘述。
获得了新的证书之后,将它与之前的证书放在同一个文件夹下,方便整理。然后如下配置nginx配置文件。
server
{
listen 443 ssl;
server_name danmu.toshokan.top;
ssl_certificate /your/cert/path/cert2.pem; #这里使用刚刚获取到的证书
ssl_certificate_key /your/cert/path/cert2.key;
location \
{
proxy_pass http://127.0.0.1:1207;
}
}
server
{
listen 443 ssl;
server_name toshokan.top www.toshokan.top;
ssl_certificate /your/cert/path/cert1.pem;
ssl_certificate_key /your/cert/path/cert1.key;
location
index index.html index.htm index.php;
root /your/path;
}
这样就可以通过新的https二级域名访问对应的端口api了。
最后给出我的弹幕接口,如果懒得搭建的话,欢迎使用我的接口(稳定性不保证https://danmu.toshokan.top
。有问题也欢迎在下方的评论中提出,在我能力允许的范围内会提供帮助。
- 出于服务器稳定性原因,该接口现已停止对外开放,可以使用以下接口
https://dplayer.alone88.cn
最终成果,也欢迎大家多发弹幕。
【合唱】 届かない恋 '13 - 上原れな & 小木曽雪菜 & 和泉千晶 MIX - WHITE ALBUM2
顺便,昨天万华镜发售了啊,虽然不是很感冒这种,但是还是有点期待的。指莲华(并不
Comments | NOTHING