1Panel 中 默认的网站应用不是 Nginx,而是 OpenResty,后者是基于前者进行了扩展,增加了 Lua 脚本支持和模块扩展。

复用目的:使 443 同时支持网页应用和某 R 协议。


1Panel 版本:社区版 v1.10.32-lts

设置步骤

  1. 修改/opt/1panel/apps/openresty/openresty/conf/conf.d中所有监听443端口的配置,这里修改为8443
    需要修改的文件一般为00.default.conf以及所有设置了 https 协议的网站配置文件。
  2. 在面板中的「网站」标签页中,修改 OpenResty 的配置文件:

主要是在 http 模块上方添加下面内容:

由于 1Panel 中的 OpenResty 是通过 Docker 安装的,并且网络模式默认为 host 模式,因此 stream 模块转发时直接使用 127.0.0.1即可,如果是 Docker 默认的 bridge 桥接网络模式,那么需要通过特定设置才能转发到宿主机的指定端口(比如使用host.docker.internal

stream {
    map $ssl_preread_server_name $backend {
        偷的域名.apple.com x;
        default nginx;
    }

    upstream x {
        # 协议端口 1443
        server 127.0.0.1:1443;
    }

    upstream nginx {
        server 127.0.0.1:8443;
    }

    server {
        listen 443 reuseport;
        # 有 IPv6 需求可以加上下面这行
        # listen [::]:443 reuseport;
        proxy_pass $backend;
        ssl_preread on;
    }
}

# 下面是 http 模块

同时,由于修改了 server 中的端口号,会导致重定向时带上了端口号,通过添加一下设置来解决:

server {
    listen 80 ; 
    listen 8443 ssl http2 ; 
    server_name example.com; 

    # 避免重定向时带上 :8443
    port_in_redirect off;
    # 告诉后端这是 HTTPS
    proxy_set_header X-Forwarded-Proto https;  
    
    index index.php index.html index.htm default.php default.htm default.html; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Host $server_name; 
    proxy_set_header X-Real-IP $remote_addr; 
    # 其他配置...
}

参考文章:使用 nginx stream 实现共用 443 端口


附上传文件大小设置


设置上传文件大小最大值

上传大小限制

默认情况下网站的可上传配置设置的有点小,可以通过一下配置进行修改:

server {
  index index.php index.html index.htm default.php default.htm default.html;
  # ...
  # 设置客户端最大请求体大小
  client_max_body_size 1024M;
  # ...
  proxy_set_header Host $host;
}

单位可设置为:

  • 不带单位,表示字节
  • k或者K,表示千字节
  • m或者M,表示兆字节
  • g或者G,表示吉字节

标签: Nginx

添加新评论