Frps部署ssl链接后去掉端口号的方法与转发速度的提升

VFX大学 VFX Pipeline | 数字创意工作流 Linux上部署Frps与Mac上Frpc的配置方案详细记录 Frps部署ssl链接后去掉端口号的方法与转发速度的提升

#127171

追光
参与者

Frps部署ssl通讯方式后去掉端口号的方法与转发速度的提升

1、tcp类型通讯协议的转发:

需要在服务端、即有公网的服务器上配置Nginx反向代理,将域名或者ip转发到带端口的网络接口,这样就不需要输入端口号才能访问。这里我全程使用了ssl安全链接,所以转发到了https的端口上。

转发目标:https://127.0.0.1:1443 转发host:¥host

完整写法如下:


#PROXY-START/

location ^~ /
{
    proxy_pass https://127.0.0.1:1443;
    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 REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache

    set $static_filexVoJAVYp 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_filexVoJAVYp 1;
        expires 1m;
    }
    if ( $static_filexVoJAVYp = 0 )
    {
        add_header Cache-Control no-cache;
    }
}
#PROXY-END/

经验记录
1、如果带端口访问,ssl只需要在本地服务器 或者转发服务器添加ssl证书即可

2、如果要去掉端口,需要在转发服务器上使用反向代理,将域名转发到转发服务器的ssl模式转发端口

访问此域名则转发到服务器的:1443端口,1443端口又转发到本地服务器端口:443

在这个模式下,所有链接都被切换到https模式,需要在转发服务器和 本地服务器都部署当前域名的证书。转发为ssl时需要证书验证一次,到达本地服务器时候还需要本地服务器有证书。俩个证书可以不是同一个厂家的,但必须是同域名的。

2、http、https方式的Nginx反向代理转发去端口

2、1vhost_https_port方式Nginx反向代理配置

server
{
    listen 80;
		listen 443 ssl http2;
    server_name test.newvfx.com;
    index index.php index.html index.htm default.php default.htm default.html;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/test.newvfx.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/test.newvfx.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
    #SSL-END
    
#Jisongbin反向代理配置
 location / { 
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_ssl_server_name on;
                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;
                #htts://https必须是域名不能用ip:[vhost_https_port]
                proxy_pass https://test.newvfx.com:1443;
                proxy_ssl_session_reuse on;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_http_version 1.1;                

        }
#Jisongbin反向代理配置结束

}

2、2、http方式Nginx反向代理配置: vhost_http_port

  

server{
        listen 80;
        server_name *.example.com;
        location / {
            //服务器的ip和端口http://[ip]:[port]   vhost_http_port
                proxy_pass http://your_ip:8080;
                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_hide_header X-Powered-By;
        }
        access_log off;