使用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容器中的任意端口,对于我们开发或测试来说是非常方便的!

相关文章
|
2月前
|
应用服务中间件 Linux nginx
Docker镜像-手动制作yum版nginx镜像
这篇文章介绍了如何手动制作一个基于CentOS 7.6的Docker镜像,其中包括下载指定版本的CentOS镜像,创建容器,配置阿里云软件源,安装并配置nginx,自定义nginx日志格式和web页面,最后提交镜像并基于该镜像启动新容器的详细步骤。
162 21
Docker镜像-手动制作yum版nginx镜像
|
1月前
|
Docker 容器
docker nginx-proxy 添加自定义https网站
docker nginx-proxy 添加自定义https网站
39 4
|
1月前
|
前端开发 应用服务中间件 nginx
docker运行nginx镜像
这篇文章详细说明了如何在Docker中部署并运行Nginx服务,包括拉取镜像、配置文件的挂载以及容器的启动配置。
256 0
docker运行nginx镜像
|
2月前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
439 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
2月前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
137 20
|
2月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
|
2月前
|
监控 网络协议 数据库连接
Python3 监控端口:使用 socket 库
Python3 监控端口:使用 socket 库
|
3月前
|
前端开发 应用服务中间件 nginx
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
下一篇
无影云桌面