nginx代理ssh请求
问题: gitea搭建完成后,无法使用ssh访问
原因:
ssh 通过默认端口22, nginx配置的https/http只能通过web访问
需要将 ssh对应的端口也暴露出来
现有所有的服务请求路径 域名解析 -> nginx -> 本地frpc -> 家庭服务器
解决: 通过nginx的stream模块转发ssh请求
upstream ssh {
server localhost:22;
}
server {
listen 322;
proxy_connect_timeout 60s;
proxy_timeout 60s;
proxy_pass ssh;
}
git remote set-url origin ssh://git@domain:322/user/porject.git
访问请求 git clone ssh://git@domain:322/user/porject.git
其他
-
nginx 查看配置模块
nginx -V
[root@VM-0-7-centos opt]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.20.2 built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC) built with OpenSSL 1.1.1k FIPS 25 Mar 2021 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-ipv6 --with-http_ssl_module
-
安装nginx
ngx_http_v2_module 模块 (1.9.5) 提供对 HTTP/2 的支持并取代 ngx_http_spdy_module 模块。
这个模块不是默认构建的,它应该使用 --with-http_v2_module 配置参数启用。
wget https://nginx.org/download/nginx-1.22.1.tar.gz tar -zxvf nginx-1.22.1.tar.gz cd nginx ./configure \ --prefix=/usr/local/nginx/ \ --user=nginx \ --group=nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-ipv6 \ --with-stream \ --with-stream_ssl_module \ --with-http_v2_module make cp /opt/nginx-1.22.1/objs/nginx /usr/sbin/nginx nginx