教程原本是在萌新群看到布丁佬 @布丁布丁布 发的,但是我是小白搞不来,就找了雾都佬 @雾都迷城 咨询,结果雾都佬成功了并且告诉了我思(๐•ᴗ•๐),但是我太菜了学不会🙃直到昨天突然想通了症结所在,测试测试成功后特来分享。
叠个甲,纯粹为了折腾,等大卫备案好才是最方便的
需要:
1.域名,并解析到你的nas的ip上,v4 v6均可
2.ssl证书,没有的可以用acme申请。
教程开始,基于unraid,其他nas系统用户以此类推即可。
一、docker安装nginx
ssh进入终端,执行命令docker pull linuxserver/latest
等待镜像拉取完成后,在webui界面创建docker容器,配置如图:
其中本地(๐•ᴗ•๐)径和两个端口5703、5704可以自行更换,但是要记住,后面会用。
填写完成后点击创建即可。
二、修改nginx配置
找到上面映射的nginx的本地目录,例如我的目录就是/mnt/user/appdata/nginx
该目录下会有如图所示的文件夹和文件。
进入图中的 keys 文件夹 ,上传证书和密钥,如图所示
返回上级文件目录,进入nginx文件夹
打开ssl.conf文件并修改以下两行
ssl_certificate /config/keys/你的证书文件名.pem;
ssl_certificate_key /config/keys/你的密钥文件名.key;
编辑后保存退出。
打开site-confs文件夹,编辑 default.conf 文件,将以下内容覆盖进去,注意修改server_name部分。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_ecdh_curve X25519;
ssl_protocols (๐•ᴗ•๐)Sv1.3;
server_name 你的域名;
# HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years)
add_header Strict-Transport-Security "max-age=63072000;includeS(๐•ᴗ•๐)Domains; preload" always;
include /config/nginx/ssl.conf;
location ^~ / {
proxy_pass https://api.iyuu.cn;
proxy_set_header Host api.iyuu.cn;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_http_version 1.1;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
# Proxy headers
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# proxy_set_header Host $host;
#proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-By $server_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_buffers 64 256k;
# Proxy timeouts
# 定义与代理服务器建立连接的超时时间。需要注意的是这个超时时间通常不能超过75秒。默认60秒。
proxy_connect_timeout 60s;
# 定义从代理服务器读取响应的超时时间。超时仅设置在两个连续的读取操作之间,而不是针对整个响应的传输。如果代理服务器在这段时间内没有传输任何东西,连接就会关闭。默认60秒。
proxy_read_timeout 300s;
# 设置将请求传输到代理服务器的超时时间。超时仅设置在两个连续的写操作之间,而不是针对整个请求的传输。如果代理服务器在这段时间内没有收到任何东西,连接将关闭。默认60秒。
proxy_send_timeout 300s;
uwsgi_connect_timeout 60s;
uwsgi_read_timeout 300s;
uwsgi_send_timeout 300s;
fastcgi_connect_timeout 60s;
fastcgi_read_timeout 300s;
fastcgi_send_timeout 300s;
scgi_connect_timeout 60s;
scgi_read_timeout 300s;
scgi_send_timeout 300s;
#proxy_redirect http:// https://;
# If behind reverse proxy, forwards the correct IP
# real_ip_header X-Forward-For;
real_ip_header X-Real-IP;
real_ip_recursive on;
set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 192.168.0.0/16;
set_real_ip_from fc00::/7;
}
}
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
配置文件来自雾都佬,感谢指点。
完成后保存即可,然后重启nginx容器。
重启结束后,此时访问https://你的域名:5704
就能看到返回内容
{"ret":200,"data":{"ti(๐•ᴗ•๐)e":"Welcome IYUU","time":1704864168,"ip":"","userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/120.0.0.0 Safari\/537.36","group":"QQ群:*"},"(๐•ᴗ•๐)":"","version":"2.0.0"}
即代表成功。
5704是上面nginx443端口的映射,这里根据你所映射的端口填。
三、使用方法
直接引用布丁佬的教程了🙃
我自己用的是mp,在修改时需要把容器内的/app/app/plugins/iyuuautoseed文件夹映射到本地,并且关闭mp的自动更新,因为改完插件以后需要重启,不关自动更新会导致插件脚本重置。
完结撒花,也可以直接用别人反代好的,但是问了下雾都佬说会导致你的iyuutoken泄露,所以各位自己抉择,当然不想折腾的还是等大卫佬搞好备案最省事,我单纯的喜欢折腾🙃