树莓派安装nextcloud结合frp实现外网域名访问

0x00 准备工作

  • LNMP环境

  • 已经安装好nextcloud并能够正常访问,安装过程:https://conimi.com/archives/69

  • 单端口多域名,80端口访问http,443端口访问https

  • 一台具有公网IP的服务器

注意(可忽略,仅作为个人笔记):

  • 由于树莓派一般处于局域网内,因此要通过域名访问可通过修改本地host文件,然后在路由器上实现端口转发

  • 在利用LNMP添加SSL证书时,直接添加无法成功,一种解决的办法是,获取局域网公网ip,在路由器上将80端口转发到树莓派80端口(例如树莓派局域网ip为192.168.0.103),然后添加ssl证书

  • 先在服务器上添加证书,然后下载到本地

0x01 frp安装及配置

  • frp官网地址:https://github.com/fatedier/frp/releases

  • 服务器上不需要安装LNMP环境

我的安装路径/opt/frps/frps_80/
以下是我的frps的配置

由于我是在树莓派上安装的,因此frpc选择的是ARM版本,根据相应环境选择相对应版本。

我的安装路径/opt/frpc/frpc_80/
以下是我的frps的配置

注意:

  • 由于本地多个域名共用一个80端口和443端口,nginx通过http 请求中的 host 字段来确定是哪个网站,因此需要加上host_header_rewrite
    ,而 custom_domains
    是必须的。

0x02 frp自启动

  • 服务器系统为CentOS

  • 树莓派系统为Debian

其中frps
的内容为

保存并设置为开机自启

frpc实现开机自启

其中frpc
的内容为

保存并设置为开机自启

0x03 设置301重定向

  • 将域名解析到服务器公网ip

  • 通过域名能够访问http和https

我的nginx配置路径为:/usr/local/nginx/conf/vhost/pan.conimi.com.conf

其中配置为:

server
{
listen 80;
listen [::]:80;
server_name pan.conimi.com ;
return 301 https://pan.conimi.com$request_uri;
}


server
{
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name pan.conimi.com ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/pan.conimi.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/pan.conimi.com/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/pan.conimi.com/pan.conimi.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;


include enable-php-pathinfo.conf;


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}


location ~ .*\.(js|css)?$
{
expires 12h;
}


location ~ /.well-known {
allow all;
}


location ~ /\.
{
deny all;
}


access_log off;
}

原文链接:https://www.modb.pro/db/198508

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享