nginx-ui icon indicating copy to clipboard operation
nginx-ui copied to clipboard

添加站点时能否支持应用自己的基础配置?

Open jearton opened this issue 1 year ago • 2 comments

我在添加站点时,在基础信息部分有一大堆固定的东西要配置,每次手动添加指令,有点麻烦。能否直接应用一套基础模板。比如我添加的指令有:

#------------------------------security------------------------------#
add_header X-XSS-Protection         "1; mode=block" always;
add_header X-Content-Type-Options   "nosniff" always;
add_header Referrer-Policy          "no-referrer-when-downgrade" always;
add_header Content-Security-Policy  "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self';" always;
add_header Permissions-Policy       "interest-cohort=()" always;
add_header X-Frame-Options          SAMEORIGIN;

# Access to .htaccess file is prohibited
location ~ /\.ht {
    deny all;
}

还有各种静态资源缓存配置,这些配置在我的每个站点都是一样的,没必要每次都手动配置一遍。我想要定制一套自己的配置。

站点大体上应该区分一下:通用站点,纯静态站点,纯反向代理站点,默认站点。websocket应该封装为一个固定选项。产品形态上应呈现为3种视图:

  1. 纯产品化傻瓜式配置视图,只需要勾勾选选和基本输入,可参考 nginx-proxy-manager 这个国外的开源项目(傻瓜模式,适合完全没学过nginx指令的小白)
  2. 可拖拽排序的指令编辑视图,能精确控制每一条指令(进阶模式,适合对nginx有经验的人,了解每个指令的含义)
  3. 纯文本编辑框视图(高级模式,适合nginx老手)

静态站点对应的HTML/CSS/JS/图片/音频/视频/字体等文件,应支持在UI上直接上传。而不需要手动ssh到服务器上,用命令行上传或是传统的FTP上传。

jearton avatar Feb 18 '24 13:02 jearton

关于静态站点的文件管理,我绑了另一个镜像搭配去实现了,这里分享一下我的 docker compose 配置:

version: '3.9'

services:
  nginx:
    image: uozi/nginx-ui:latest
    container_name: nginx
    restart: unless-stopped
    depends_on:
      - filebrowser
    networks:
      - backend
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ~/docker/nginx/conf:/etc/nginx
      - ~/docker/nginx/ui:/etc/nginx-ui
      - ~/docker/nginx/www:/var/www
      - ~/docker/nginx/log:/var/log/nginx/local
    environment:
      - TZ=Asia/Shanghai
  filebrowser:
    image: filebrowser/filebrowser:v2-s6
    container_name: nginx-filebrowser
    restart: unless-stopped
    networks:
      - backend
    volumes:
      - ~/docker/nginx:/srv/nginx
      - ~/docker/nginx-filebrowser/database:/database
      - ~/docker/nginx-filebrowser/config:/config
    environment:
      - TZ=Asia/Shanghai
      - PUID=0
      - PGID=0

networks:
  backend:
   external:
     true

在站点列表里也添加了 filebrowser 的反向代理,然后只需要进入 www 目录,在线上传网站文件就可以了,www 下的一个目录对应一个网站。 image

jearton avatar Feb 20 '24 09:02 jearton