nginx之搭建HTTP、TCP反向代理服务

项目需求

由于公司公网IP有限,现要通过反向代理把请求转发到内网,要支持HTTP/TCP等协议。接下来在nginx.conf添加如下配置

HTTP反向代理

http {
        include       mime.types;
        default_type  application/octet-stream;
        #access_log  logs/access.log  main;
        sendfile        on;
        tcp_nodelay     on; #边接边传
        keepalive_timeout  65;
        gzip  on;
        autoindex on; #开启nginx目录浏览功能
        autoindex_exact_size off; #文件大小从KB开始显示
        autoindex_localtime on; #显示文件修改时间为服务器本地时间
        upstream backend {
                server 172.19.0.15:80;
        }
        server {
                listen       80;
                server_name  localhost;
				chunked_transfer_encoding on;
                client_max_body_size  100000000m;

                proxy_set_header  Host $http_host;
                proxy_set_header  X-Real-IP  $remote_addr;
                #proxy_set_header  REMOTE-HOST $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_read_timeout  1800;

                location / {
                        proxy_redirect off;
                        proxy_pass http://backend;
                }
        }
}

TCP反向代理

stream {
    upstream backend {
       # hash $remote_addr consistent;
        server 72.19.0.5:3306;
    }

    server {
        listen 3306;
       # proxy_connect_timeout 1s;
       # proxy_timeout 3s;
        proxy_pass backend;
    }
}

docker stack部署

编写yml

services:
  proxy:
    image: nginx:latest
    container_name: sg-proxy
    restart: always
    networks:
    - ng-net
    ports:
      - 80:80
      - 3307:3306
    volumes:
      - ng-log:/var/log/nginx
    deploy:
      mode: replicated
      replicas: 1
      restart_policy:
        condition: on-failure
      placement:
        constraints:
          - node.hostname == user
    configs:
      - source: nginx-conf
        target: /etc/nginx/nginx.conf

configs:
  nginx-conf:
    file: ./nginx.conf
  my_other_config:
    external: true

volumes:
  ng-log:

networks:
  ng-net:
    external:
      name: sg-net

docker stack启动

docker stack deploy -c docker-compose.yml px
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值