nginx问题咨询

最近买了一个vps,搭建了3x-ui,正常使用http://ip:port/根路径 就可以访问

正好手里有一个us.kg的域名,就像使用域名+https(使用cf的ssl证书)来访问x-ui的页面。
目前配置好ngnix后,将http://ip:port/根路径 改为域名/根路径。测试结果404
下面是nginx的相关配置

root@cheerful-beep-1:/etc/nginx/sites-enabled# cat default 
server {
    listen 443 ssl http2;
    server_name xx.ab.us.kg;

    ssl_certificate /etc/nginx/cert/public.pem;
    ssl_certificate_key /etc/nginx/cert/private.key;

    location /info {
        proxy_pass http://127.0.0.1:1017/;
        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;
    }

    location / {
        return 404; # 拒绝其他未匹配的请求
    }
}

日志如下

[17/Nov/2024:06:35:33 -0800] "GET /info/ HTTP/2.0" 404 176 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" https
2024/11/17 06:04:24 [error] 17165#17165: *1 open() "/usr/share/nginx/html/info" failed (2: No such file or directory), client: 172.70.211.136, server: bwg.maxchan.us.kg, request: "GET /info HTTP/2.0", host: "bwg.maxchan.us.kg"

从日志上看,好像是端口转发失败了,请求了静态资源

想问一下是不是我的配置出了问题

13 个赞

你重启 nginx 了吗

重启过了使用 systemctl restart nginx

那什么。。。你是不是域名访问错了。。你日志中的域名和你配置的域名对吗

这个是转发到本地的1017端口,1017就是x-ui配置的端口

我脱敏了11

location 那里 /info/ 试试

image
请求应该是进来了,我在对应的位置加上html后,页面上就显示了

server_name xx.ab.us.kg;你这配置的不是这个吗


这个是真正的配置

1017后面不要跟/试试

被其他server块拦截了?

1 个赞

nnd,还真是,之前在另外一个地方配置了一个错误的config。真是自己给自己挖坑

Nginx不太建议做这种转发,用Gost/Realm转发简单高效一些

你访问ip:port是直接到应用,所以正常
但是你访问域名走了nginx的规则,我理解域名/根路径就是默认/,不知道是不是你的情况,如果是的话,那就很正常啊,你带/info才会转吧
location / {
return 404; # 拒绝其他未匹配的请求
}