Add VLESS+XHTTP Docker Compose project with nginx reverse proxy
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"log": {
|
||||
"loglevel": "warning"
|
||||
},
|
||||
"inbounds": [
|
||||
{
|
||||
"listen": "0.0.0.0",
|
||||
"port": 6543,
|
||||
"protocol": "socks",
|
||||
"settings": {
|
||||
"auth": "noauth",
|
||||
"udp": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"tag": "proxy",
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"vnext": [
|
||||
{
|
||||
"address": "nginx",
|
||||
"port": 443,
|
||||
"users": [
|
||||
{
|
||||
"id": "a142293d-1801-4e80-b309-ff3a5f70db8b",
|
||||
"encryption": "none"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "xhttp",
|
||||
"security": "tls",
|
||||
"xhttpSettings": {
|
||||
"mode": "stream-one",
|
||||
"path": "/trapdoor"
|
||||
},
|
||||
"tlsSettings": {
|
||||
"serverName": "localhost",
|
||||
"allowInsecure": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "direct",
|
||||
"protocol": "freedom"
|
||||
}
|
||||
],
|
||||
"routing": {
|
||||
"domainStrategy": "IPOnDemand",
|
||||
"rules": [
|
||||
{
|
||||
"ip": [
|
||||
"geoip:private"
|
||||
],
|
||||
"outboundTag": "direct"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
server_name localhost;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/cert.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/key.pem;
|
||||
|
||||
client_header_timeout 5m;
|
||||
keepalive_timeout 5m;
|
||||
|
||||
location /trapdoor {
|
||||
proxy_pass http://unix:/dev/shm/xray.socket;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
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_read_timeout 86400s;
|
||||
proxy_send_timeout 86400s;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"log": {
|
||||
"loglevel": "warning"
|
||||
},
|
||||
"inbounds": [
|
||||
{
|
||||
"listen": "/dev/shm/xray.sock,0666",
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [
|
||||
{
|
||||
"id": "a142293d-1801-4e80-b309-ff3a5f70db8b"
|
||||
}
|
||||
],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "xhttp",
|
||||
"xhttpSettings": {
|
||||
"mode": "stream-one",
|
||||
"path": "/trapdoor"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "direct"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
services:
|
||||
cert-gen:
|
||||
image: alpine:latest
|
||||
volumes:
|
||||
- tls-certs:/etc/nginx/ssl
|
||||
command: >
|
||||
sh -c "
|
||||
apk add --no-cache openssl &&
|
||||
openssl req -x509 -nodes -days 3650 -newkey rsa:2048
|
||||
-keyout /etc/nginx/ssl/key.pem
|
||||
-out /etc/nginx/ssl/cert.pem
|
||||
-subj '/CN=localhost' &&
|
||||
chmod 644 /etc/nginx/ssl/cert.pem /etc/nginx/ssl/key.pem
|
||||
"
|
||||
|
||||
nginx:
|
||||
image: nginx:latest
|
||||
depends_on:
|
||||
cert-gen:
|
||||
condition: service_completed_successfully
|
||||
xray-server:
|
||||
condition: service_started
|
||||
volumes:
|
||||
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
- tls-certs:/etc/nginx/ssl:ro
|
||||
- xray-socket:/dev/shm
|
||||
|
||||
xray-server:
|
||||
image: ghcr.io/xtls/xray-core:latest
|
||||
volumes:
|
||||
- ./config/server.json:/etc/xray/config.json:ro
|
||||
- xray-socket:/dev/shm
|
||||
command: run -c /etc/xray/config.json
|
||||
|
||||
xray-client:
|
||||
image: ghcr.io/xtls/xray-core:latest
|
||||
depends_on:
|
||||
- nginx
|
||||
volumes:
|
||||
- ./config/client.json:/etc/xray/config.json:ro
|
||||
ports:
|
||||
- "6543:6543"
|
||||
command: run -c /etc/xray/config.json
|
||||
|
||||
volumes:
|
||||
tls-certs:
|
||||
xray-socket:
|
||||
Reference in New Issue
Block a user