说明:为了能够多站点访问群晖搭建的Typecho博客、群晖管理页、图床等服务,需要安装Nginx配合FRP使用。目前通过这种方式可以访问多个对外服务,如果你有更好的访问方式,欢迎交流学习。
当前站点的大致架构如下:
公网服务器(Nginx+FRP) <------穿透------> 家庭群晖服务器(在群晖上部署Typecho,图床等服务)。
一、Nginx安装配置
安装部分参考lywJee的文档,写的非常好。常用的功能部分都进行了描述,请参阅文档进行Nginx进行安装。
二、FRP与Nginx的配合使用
Nginx安装完成后,配置文件部分修改如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name *.collick.xyz;
location / {
proxy_pass http://127.0.0.1:8080; #为FRP服务器的服务端口
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 240s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /nginx/html;
}
}
}
二、FRP服务端的配置文件如下(详情参阅FRP安装配置):
[root@VM-0-2-centos frp]# cat frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 8443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = www.collick.xyz
log_file = ./frps.log
log_level = info
log_max_days = 3
token = www.collick.xyz
max_pool_count = 5
max_ports_per_client = 0
authentication_timeout = 900
subdomain_host = collick.xyz
privilege_allow_ports = 2000-3000,3001,3003,4000-50000
三、FRP客户端配置文件如下:
FRP客户端已在群晖上安装,详情参阅FRP安装配置。
root@Mydsm:/frp# vi frpc.ini
#以下为参考配置
[common]
server_addr = collick.xyz
server_port = 7000
token = www.collick.xyz
[www.collick.xyz]
type = http
local_port = 80
subdomain = www
[mydsm.collick.xyz]
type = http
local_port = 5000
subdomain = mydsm
四、群晖WEB-Virtual Host端配置
选择基于域名配置,填写访问的域名:www.collick.xyz
1 条评论
./configure \
--prefix=/nginx \
--pid-path=/nginx/nginx.pid \
--lock-path=/nginx.lock \
--error-log-path=/nginx/error.log \
--http-log-path=/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/nginx/client \
--http-proxy-temp-path=/nginx/proxy \
--http-fastcgi-temp-path=/nginx/fastcgi \
--http-uwsgi-temp-path=/nginx/uwsgi \
--http-scgi-temp-path=/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_sub_module