使用docker部署v2ray和nginx,并配置ws协议,开启tls

说明

必要条件

  1. docker
  2. 域名一枚
  3. 证书(证书.crt,证书.key)

创建目录

mkdir -p /home/v2ray
mkdir -p /home/nginx/html
mkdir -p /home/nginx/conf

v2ray配置

tee /home/v2ray/config.json <<-'EOF'
{
    "log": {
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log",
        "loglevel": "warning"
    },
    "inbounds": [
        {
            "port": 20872,
            "protocol": "vmess",
            "settings": {
                "clients": [
                    {
                        "id": "5d94d1bc-749b-7915-2ae8-5d30c8b6cd09",
                        "level": 1,
                        "alterId": 64
                    }
                ]
            },
            "streamSettings": {
                "network": "ws",
                "wsSettings": {
                    "path": "/v2ray"
                }
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "settings": {}
        }
    ]
}
EOF

nginx配置

tee /home/nginx/conf/default.conf <<-'EOF'
server {

    listen       80;
    listen  [::]:80;
    
    listen 443 ssl http2 default_server;
    server_name {域名};
    root /usr/share/nginx/html;
    
    ssl_certificate "/etc/nginx/conf.d/{证书}.crt";
    ssl_certificate_key "/etc/nginx/conf.d/{证书}.key";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    
    location /koc {
      proxy_redirect off;
      proxy_pass http://v2ray:20872/v2ray;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $http_host;
    }
}
EOF

启动v2ray

docker run -d --name v2ray -v /home/v2ray:/etc/v2ray -v /etc/localtime:/etc/localtime:ro v2ray/official v2ray -config=/etc/v2ray/config.json

启动nginx

docker run --name nginx --link v2ray -p 80:80 -p 443:443 -v /etc/localtime:/etc/localtime:ro -v /home/nginx/html:/usr/share/nginx/html:ro -v /home/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf:ro -d nginx

额外工作

  1. 开放端口 80443
上次更新: