使用 “xx.me/alist” "xx.me/openwebui"这种方式还是有可能有问题的,需要看你的服务(就是你说的alist、open-webui这些服务)里对资源的请求路径是怎么写的。
以alist举个例子吧,假设你配置的路径是 xxx.me/alist
假如,我是说假如,
1.假如 alist 的前端页面代码里请求后端时使用的是相对路径比如 “xx/xx.js” “xx/xx.jpg”,这种的,访问时浏览器会自动帮你把浏览器地址栏里的 /alist 这个前缀之类的补全,是没问题的
2.假如 alist 的前端页面代码里请求后端时使用的是类似JSP中那种由代码动态获取当前的contextpath的,也没问题,但是这种的我感觉应该比较少了,尤其是前后端分离的项目基本上不太可能是这种方式
3.假如alist代码里写的就是绝对路径,比如 “/xx/xx.js” 那么浏览器访问时是不会帮你再把 “/alist” 这一部分给补上的,也就是说你的请求到达nginx的时候是不会带有 “/alist” 这一部分的,nginx也就没法给你转发到你想要的服务上,而是走默认的 “/” 根路径。
所以,你如果遇到能请求到网页,但是里面js/css/图片/接口等等无法访问的情况,那就说明代码里是写的绝对路径,这时候
1.要不然你去改代码,
2.要不然就去分析没法转发的那些路径前缀(比如"/staticdata")是不是只有这一个服务在用,如果是只有这一个服务使用那你需要在nginx里把这些路径也转发到alist的服务,如果不是只有这一个服务使用,那就不好搞了。
所以,还是推荐搞个二级域名 alist.xx.me openwebui.xx.me 这种形式。
xx.me/alist xx.me/openwebui 这种的,你要转发的服务越多,遇到问题的可能性就越大
我的建议是直接用宝塔,个人用户反正也不怕被收拾。操作基本都属于傻瓜式
kimi360
(KIMI)
24
server {
listen 443 ssl;
server_name aa.xxxx.top;
client_max_body_size 4M;
ssl_certificate /etc/nginx/ssl/*.xxxx.top/server.crt;
ssl_certificate_key /etc/nginx/ssl/*.xxxx.top/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
client_max_body_size 50M;
proxy_pass http://127.0.0.1:80;
}
}
https://aa.xxxx.top → http://127.0.0.1:80
多写几个server块,不同的二级域名绑定到不同的端口上,省的记路径,还可能有问题
wisokey
(wisokey)
25
我这里直接给一个实际的配置吧,说实在的二级路径这种东西实在是吃力不讨好,不如直接用不同的域名。这个是我之前没捣鼓域名的时候搞的,后面发现使用路径来区分基本上每个服务都得单独去改点什么,没法直接复制,累得很,还不一定能用。很多服务压根就没考虑过使用路径的这种模式
server {
listen 80;
listen [::]:80;
server_name localhost;
client_max_body_size 128M;
# portainer docker 管理面板
location /apps/portainer/ {
proxy_pass https://172.17.0.1:39443/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 如果使用自签名证书,可以禁用 SSL 验证
proxy_ssl_verify off;
}
# dpanel docker 管理面板
location /apps/dpanel/ {
proxy_pass http://172.17.0.1:38807/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
sub_filter '/dpanel' '/apps/dpanel/dpanel';
sub_filter '/api' '/apps/dpanel/api';
sub_filter '/ws' '/apps/dpanel/ws';
sub_filter_types text/javascript;
sub_filter_once off;
}
# aria2 + AriaNg http/ftp 下载服务
location /apps/ariang/ {
proxy_pass http://172.17.0.1:36880/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# aria2 RPC
location /apps/aria2/jsonrpc {
proxy_pass http://172.17.0.1:36800/jsonrpc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持(如 Aria2 使用 WebSocket)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# qbittorrent-nox BT 下载服务
location /apps/qbittorrent/ {
proxy_pass http://172.17.0.1:38080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
}
# alist 云盘
location /apps/alist/ {
proxy_pass http://172.17.0.1:35244/apps/alist/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
# the max size of file to upload
client_max_body_size 20000m;
}
# nginx UI nginxWebUI管理面板
location /apps/nginxui/ {
proxy_pass http://127.0.0.1:9000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location / {
try_files $uri $uri/ =404;
}
}
yys
(yys)
26
的确二级域名更方便,nginx配置对小白来说太难了 ,总是出现一些无法无法理解的问题
yys
(yys)
27
的确是二级域名方便很多,不懂原理,配置起来太头疼了
yys
(yys)
28
感谢各位大佬的鼎力相助,目前用二级域名更方便,二级目录还得再琢磨琢磨
wisokey
(wisokey)
30
这个配置是n个月之前的了,只是留着在服务器上纪念下我那几天的辛苦配置。我现在用的是域名的方案。
smith3
(smith)
31
如果需要证书 推荐caddy 配置相对nginx简单一些 丢给ai基本可以给你搞定