使用nginx进行http以及socket端口转发(快速提高docker开发效率)

简介: 本文介绍如何使用nginx进行http以及socket端口转发以快速提高docker开发效率

nginx可以转发http以及socket端口。该功能在使用docker进行开发测试时是非常有用的。

我们在使用docker时如果启动的时候忘记做端口映射,那么就可以通过配置nginx端口转发的方式实现。

使用nginx转发http端口

文件配置,修改/etc/nginx/nginx.conf

在http配置项中添加server子项,例如:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    
    client_max_body_size 500m;


    include /etc/nginx/conf.d/*.conf;

  server{
    listen 28181;
    server_name 192.168.1.4; # 公网ip
    index  index.php index.html index.htm;

    location / {
      proxy_pass  http://172.17.0.8:8080; # 或 http://www.baidu.com
      proxy_set_header Host $proxy_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

上述配置表示将http://172.17.0.8:8080转发到http://192.168.1.4:28181上

使用nginx转发socket端口

同样修改文件配置,修改/etc/nginx/nginx.conf,

在http同级配置项下新增stream配置,具体如下所示:

stream{
    upstream socket_server{
        server 172.17.0.8:5005 weight=1;#发布socket1服务端口
    }
    #监听socket端口 
    server {
        listen 15005;
        proxy_pass socket_server;
    }
}

上述配置表示将172.17.0.5:5005的socket端口转发到本机的15005端口。

总结

基于上述nginx的功能特性,我们可以使用nginx动态转发docker容器中的任意端口,对于我们开发或测试来说是非常方便的!

相关文章
|
3月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
227 7
|
4月前
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
274 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
154 20
|
2月前
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
683 7
|
5月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
69 0
|
5月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
80 0
|
6月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
102 3
|
6月前
|
缓存 安全 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
210 1
|
6月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
130 1
|
6月前
|
缓存 应用服务中间件 nginx
[nginx]定制http头信息
[nginx]定制http头信息