群晖配置nginx二级域名代理及相关问题

2023-04-02  本文已影响0人  Nzkalhbxx

系统采用公网ipv6➕ddns-go➕阿里云|腾讯云域名的方式实现公网的访问。

但是公网访问dsm必须在域名后带上指定端口才能访问指定的web服务。为了安全起见,也为了便于记忆,系统可以利用nginx的二级域名代理服务,然后关闭除nginx监听端口外的其他端口以实现更为安全的访问控制。

如原始的ddns-go的web界面为pengsijie.top:9876,不便于记忆,当服务多了之后,当初记忆端口变得困难。因此可以在linux系统或docker下安装nginx服务并配置转发规则。

转发规则示例如下:

主配置文件nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;
    client_max_body_size 40960m;

    #gzip  on;

    include /etc/nginx/conf.host/*.conf;
}

转发规则配置文件xxx.xonf

server {
        listen       80;
        listen  [::]:80;

        server_name  ddnsgo.pengsijie.top;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
        proxy_pass http://192.168.10.99:9876;
        proxy_connect_timeout 300s;
        proxy_send_timeout 900;
        proxy_read_timeout 900;
        proxy_buffer_size 32k;
        proxy_buffers 4 64k;
        #proxy_buffering off;
        proxy_busy_buffers_size 128k;
        proxy_redirect off;
        proxy_hide_header Vary;
        proxy_set_header Accept-Encoding '';
        proxy_set_header Referer $http_referer;
        proxy_set_header Cookie $http_cookie;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
 
       
        }
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
       
    }
然后进去ddns-go的动态域名解析配置界面,配置该服务的二级域名为ddnsgo.pengsijie.top,随后保存,ddns-go便会与阿里云或者腾讯云进行更新域名解析的api操作。

配置完成后重启nginx,便可以直接通过ddnsgo.pengsijie.top访问web服务,而无需加上端口。

如要进入群晖的管理界面,默认端口为5000,原始访问url为pengsijie.top:5000,当配置了ddns-go动态域名解析为如dsm.pengsijie.top,nginx中配置server_name为dsm.pengsijie.top后,便可以直接通过http://dsm.pengsijie.top访问群晖的web管理界面。

注意点:
当配置了通过nginx代理其他web服务时,建议配置一下nginx的最大请求body,因为当有文件上传的需求时,默认的最大body可能过小,会导致请求上传文件时,服务器报413的请求错误。

可以选择在http{ }中设置:client_max_body_size 200m;
也可以选择在server{ }中设置:client_max_body_size 200m;
还可以选择在location{ }中设置:client_max_body_size 200m;
三者有区别
设置到http{}内,控制全局nginx所有请求报文大小
设置到server{}内,控制该server的所有请求报文大小
设置到location{}内,控制满足该路由规则的请求报文大小

如果不想在docker中安装nginx,可以用系统自带的nginx配置相关的自定义server即可。默认的nginx的配置文件路径为:/etc/nginx
自定义配置文件可放在sites-enabled文件夹中。

然后将上面步骤nginx配置的二级域名转发的内容,新建一个xxx.conf并粘贴内容保存到sites-enabled。然后重启系统自带的nginx服务。重启命令为:

synosystemctl restart nginx

上一篇 下一篇

猜你喜欢

热点阅读