站点图标 Linux-技术共享

X-ui配合宝塔nginx实现Nginx反代实现 v2-ui 面板和网站共存

X-ui单独设置Xray非常好用,但如果你的服务器上也安装了web server,如nginx,就会比较麻烦,因为Xray和nginx只能二选一监听443端口。当然,你也可以选择让Xray监听非标准HTTPS端口,但这又会造成Xray的流量看起来不像正常的流量的后果,因为几乎没有正常的站点会使用非标准HTTPS端口。正规的做法应该是让Xray使用websocks(ws 下同)传输,监听本地端口,nginx反代此端口,这样就不会造成443端口冲突了,你的webserver也可以正常使用。下面把这个流程简单说一遍。

1 安装宝塔
2 安装X-ui
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
如果提示curl命令不存在,你需要安装一下
apt update && apt install curl -y #( debian或ubuntu)
yum update && yum install curl -y #(centos)
注意如果先前已经安装了Xray,安装X-ui会重置Xray的配置文件,如果需要请备份一下配置文件
cp /etc/Xray/config.json /etc/Xray/config.json.bak
再执行安装命令;注意安装了宝塔之后X-ui的54321端口会被防火墙封禁,要去bt后台放行此端口。
3 宝塔添加站点 (注意你还需要做好域名解析)
4 为站点申请SSL证书
5 X-ui设置
1.更改管理用户名及密码

2.更改X-ui管理后缀

注意更改根路径后需要重启面板

3. 新建用户

这里只需要更改一项,把传输配置更改为ws即可!路径可自定义,不必和我的一样;监听IP默认为0.0.0.0 可改可不改,更改为127.0.0.1即只允许nginx反代而不允许直接连接。

6.nginx设置
在站点配置文件适当位置添加如下配置项

location ^~ /X-ui/ {
proxy_pass http://127.0.0.1:54321/X-ui/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ions {
proxy_redirect off;
proxy_pass http://127.0.0.1:53964;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 300s;
# Show realip in Xray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


注意 /X-ui前面需要加 ^~ 设置为正则匹配,要不会和宝塔默认的js缓存规则冲突导致X-ui后台js文件全部404,后台一片空白。
设置完毕以后,在宝塔面板里面重载配置,然后重新启动 Nginx,配置生效。
至此,你可以使用 https://ip/X-ui/ 来访问你的 Xray 管理面板了。
后续注意:这样设置会使X-ui后台的二维码和分享链接无法直接使用,导入后必须手动服务器地址为你的域名或者IP,更改端口为443,开启TLS并填入你的域名及path。后续可以通过IP:54321/path 或 https://域名/path 访问X-ui后台,建议可以把54321端口用防火墙封禁掉只通过域名HTTPS访问。

退出移动版