精华内容
下载资源
问答
  • nginx绑定多个端口

    万次阅读 2019-01-25 14:33:17
    有两种方法: 一、在server段写上2个Listen就可以了. ...如上,就可以同时监听2个端口了. 二、在 nginx.conf 中配置多个个server即可 user nginx nginx; worker_processes 1; worker_rlimit_nofile...

     

    有两种方法:

    一、在server段写上2个Listen就可以了.

    listen 192.168.0.15:808;
    listen 192.168.0.15:8098;
    如上,就可以同时监听2个端口了.

    二、在 nginx.conf 中配置多个个server即可

    user nginx nginx;
    
    worker_processes  1;
    
    worker_rlimit_nofile 65535;
    
    events {
        worker_connections  4000;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        autoindex off;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"'
                           '$upstream_addr $upstream_response_time $request_time ';
        access_log  logs/nginx/access.log main;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
            upstream localhost {
            server 127.0.0.1:8080 max_fails=7 fail_timeout=7s;
        } 
    
        server {
            listen       808;
            server_name  localhost;
                    large_client_header_buffers 4 128k;
            client_max_body_size 300m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
            proxy_buffer_size 64k;
            proxy_buffers   4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    
    #设定查看Nginx状态的地址
            location /nginxstatus{
                stub_status on;
                access_log on;
                auth_basic "nginxstatus";
                auth_basic_user_file htpasswd;
        }
    
    #ftpweb
             location /ftpweb {
               index  index.html index.htm index.jsp;
               proxy_pass  http://192.168.0.16:9081/ftpweb;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $host:$server_port;
            }
    
    #Zabbixweb
             location /webzabbix/ {
               index  index.html index.htm index.jsp;
               proxy_pass  http://192.168.0.15/zabbix/;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $host:$server_port;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
        server {
            listen       8098;
            server_name  localhost;
            large_client_header_buffers 4 128k;
            client_max_body_size 300m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
            proxy_buffer_size 64k;
            proxy_buffers   4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    
    #开放8098接口地址
             location /interserver {
               index  index.html index.htm index.jsp;
               proxy_pass  http://192.168.0.20:8812/interserver/;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $host:$server_port;
            }
    
        }
    
    }

    这样就就可以一个nginx服务访问808和8098两个端口到不同服务的了
    http://192.168.0.15:808/ftpweb
    http://192.168.0.15:8098/interserver

    补充方法三:

       通过proxy_pass 实现

    • /netdata => 转发19999
    • /lets chat => 转发8000
    • /shipyard => 80是nginx自己的端口,不做转发
    location /netdata {
        proxy_pass http://localhost:19999/;
    }
    location /lets chat { // 这里你问题应该有问题,最好不要有空格
        proxy_pass http://localhost:8000/;
    }

    记住proxy_pass 地址的最后一个斜杠是关键

    原文连接:http://blog.51cto.com/meiling/2067988

    展开全文
  • 单个进程监听多个端口单个进程创建多个 socket 绑定不同的端口,TCP, UDP 都行多个进程监听同一个端口(multiple processes listen on same port)方式1:通过 fork 创建子进程的方式可以实现,其他情况下不行。...

    单个进程监听多个端口

    单个进程创建多个 socket 绑定不同的端口,TCP, UDP 都行


    多个进程监听同一个端口(multiple processes listen on same port)

    方式1:通过 fork 创建子进程的方式可以实现,其他情况下不行。

    当连接到来时,子进程、父进程都可以 accept, 这就是著名的“惊群”问题(thundering herd problem)。

    NGINX 的 master/work 处理方法:

    Flow of an NGINX worker process

    可以设置 ffd 的 close-on-exec flag 避免子进程继承 fd.


    方式2:我们都知道socket是网络上两个进程之间的双向通信链路, 即

    socket = 《A进程的IP地址:端口号,B进程的IP地址:端口号》

    那么有个问题就很有意思了,不同的进程可以监听在同一个IP地址:端口号么?

    根据Unix网络编程中的知识可知,服务端监听一个端口会经历:

    1、根据套接字类型(Ipv4,Ipv6等)创建套接字socket

    2、将套接字bind绑定到具体的网络地址和端口号

    3、调用listen开始在这个套接字上进行监听。

    Unix提供了一个接口setsockopt()可以在bind之前设置套接字选项,其中就包括REUSEADDR这个选项,表明可以多个进程复用bind函数中指定的地址和端口号。

    由此可知多个应用(进程),包括同一个应用多次,都是可以绑定到同一个端口进行监听的。对应地C++、NET等高级语言也都提供了对应的接口。


    从一些例子也可以看出,比如有时候你在服务器上执行netstat -ano可能会发现同一个应用程序在同一个端口上有多个监听,这是因为一些服务端应用程序可能会异常退出或者没有完全释放套接字,但是需要在重新启动时还能够再次监听同一个端口,所以需要能够具备重复监听同一个端口的能力,因此也出现上述情形。


    展开全文
  • 文章目录docker部署nginx 并实现反向代理 配置多个域名多个端口1. 安装nginx:2. 以终端的方式打开镜像容器default.conf:nginx.conf:3. 在linux中创建挂载配置文件和文件夹4. 创建容器并挂载文件和文件夹这一步:如果...

    docker部署nginx 并实现反向代理 配置多个域名多个端口

    1. 安装nginx:

     docker pull nginx
    

    2. 以终端的方式打开镜像容器

    docker run -i -t docker.io/nginx /bin/bash
    
    这里pull的nginx镜像为docker.io/nginx
    
    (关键)查看nginx镜像里面配置文件、日志等文件的具体位置,
    只有找到镜像配置文件的路径,后面挂载文件和文件夹才能覆盖这些路径:
    
    找到镜像中nginx.conf配置文件路径: /etc/nginx/nginx.conf
    用命令:
        cat  /etc/nginx/nginx.conf
        查看nginx.conf文件内容然后拷贝出来
    
    找到default.conf配置文件的路径: /etc/nginx/conf.d/default.conf
    
    用命令:
        cat  /etc/nginx/conf.d/default.conf 
        查看default.conf文件内容然后拷贝出来
        
    找到默认首页文件夹html路径: /usr/share/nginx/html
    
    找到日志文件路径: /var/log/nginx
    
    然后输入exit退出容器的终端
    

    default.conf:

    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    

    nginx.conf:

    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    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;
    
        include /etc/nginx/conf.d/*.conf;
    }
    

    3. 在linux中创建挂载配置文件和文件夹

    mkdir -p /nginx/conf
    mkdir -p /nginx/conf.d
    mkdir -p /nginx/html
    mkdir -p /nginx/logs
    
    在conf文件夹创建nginx.conf: 并拷贝内容粘贴到文件中,:wq退出保存
        vi nginx.conf
    
    在conf.d文件夹创建default.conf,并拷贝内容粘贴到文件中,:wq退出保存
        vi default.conf
    

    反向代理:

    如创建light4d.top.conf, 其他的域名代理相同,只要改server_name和proxy_pass代理端口,配置文件需以.conf结尾,

    在这里我配置了www.light4d.top.conf和doc.lightmap.com,分别创建light4d.top.conf,doc.lightmap.conf文件,反向代理端口分别为8002,8052

    light4d.top.conf
    添加以下配置信息:
        server {
            listen 80;
            server_name www.light4d.top; # 域名
            location / {
                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_pass http://39.98.226.118:8002; # 代理ip:端口
            }
        }
    
    doc.lightmap.conf
    添加以下配置信息:
        server {
            listen 80;
            server_name doc.lightmap.top; # 域名
            location / {
                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_pass http://39.98.226.118:8052; # 代理ip:端口
            }
        }
    

    4. 创建容器并挂载文件和文件夹

    这里所挂载的文件和文件夹路径必须和以上所创建的配置文件路径一致

    docker run  --name nginx -d -p 80:80 -v /nginx/html:/usr/share/nginx/html -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /nginx/conf.d:/etc/nginx/conf.d  -v /nginx/logs:/var/log/nginx docker.io/nginx
    

    这一步:如果挂载之后容器运行正常却依然不能通过域名访问可尝试以下操作

    向名称为nginx的容器发送脚本命令
        docker exec -it nginx /bin/bash
    重新加载配置命令
        cd /etc/nginx/conf.d
        service nginx reload
     检查配置文件路径是否正确
    

    注意:每一次更改配置文件都需要重启容器

    docker restart nginx // 重启nginx容器
    docker ps  // 查看容器状态
    docker logs -t nginx // 如果挂载失败,查看nginx容器log,显示错误信息,根据错误信息 更改配置文件等
    

    以上配置完成之后能够通过域名访问网站,但是css样式却被nginx解析成text/plain,打开控制台可看到warn信息

    解决nginx将css文件解析为text/plain

    方法一:来自网上的普遍解决办法

    ngin.conf中http添加:
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    

    注:此办法并不能使我网站的css正确解析,因为在拷贝nginx镜像中的原配置文件时,就已经添加mime.types了。却依然不能正确解析。

    方法二:解析成功,原因未知

    将index.html中<!DOCTYPE html>去掉。
    

    通过域名访问:成功!!

    借鉴此博文,感谢。

    展开全文
  • frp内网穿透配置多个端口

    千次阅读 2020-02-24 10:57:28
    frp内网穿透配置多个端口 一、frp项目的官方中文文档地址 https://github.com/fatedier/frp/blob/master/README_zh.md 二、部署准备 1、公网ip(云服务器一台) 2、内网服务器一台(个人电脑) 3、域名(可选) 4、frp...

    frp内网穿透配置多个端口

    一、frp项目的官方中文文档地址

    https://github.com/fatedier/frp/blob/master/README_zh.md

    二、部署准备

    1、公网ip(云服务器一台)

    2、内网服务器一台(个人电脑)

    3、域名(可选)

    4、frp(分为客户端和服务器端)

    三、搭建web服务(ssh等其他服务参考官方文档)

    1、服务器端搭建

    服务器搭建在公网上,以下操作为阿里云服务器

    1)下载对应的frp在阿里云服务器上

    a.先查看linux版本信息

    cat /proc/version
    

    结果

    Linux version 3.10.0-1062.4.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org)
    

    b.创建文件夹

    cd /home
    mkdir frp
    cd frp
    

    c.下载frp

    wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_386.tar.gz
    

    d.解压文件

    tar xvf frp_0.31.2_linux_386.tar.gz 
    

    e.进入文件

    cd frp_0.31.2_linux_386
    

    2)配置frp

    a.编辑配置文件frps.ini

    vim frps.ini 
    

    内容

    [common]
    bind_port = 7000
    vhost_http_port = 8080   
    

    b.wq保存退出,启动服务

    ./frps -c ./frps.ini
    

    c.出现以下结果,说明启动成果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Coj8Wx1q-1582513021518)(/Users/bobwang/Library/Application Support/typora-user-images/image-20200210224331237.png)]

    3)nginx配置

    nginx.conf

    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen 80;
            server_name  127.0.0.1; # 改为自己的域名,没域名修改为127.0.0.1
            charset utf-8;
            client_max_body_size  50000m;
            location /{
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    }
    
    

    启动nginx

    2、内网搭建客户端(MAC平台)

    1)下载跟服务器端版本一致的frp

    frp_0.31.2_darwin_amd64.tar.gz
    

    2)解压后进入文件配置frps.ini

    cd frp_0.31.2_darwin_amd64
    vim frpc.ini
    

    我的配置为

    [common]
    server_addr = xxx.xxx.xxx.xxx # 服务器ip
    server_port = 7000
    
    [web1]
    type = http
    local_port = 8080
    custom_domains = xxx.xxx.xxx.xxx # 服务器ip
    locations = / # eg:http://xxx.xxx.xxx.xxx/yolo/test
    [web2]
    type = http
    local_port = 8081
    custom_domains = xxx.xxx.xxx.xxx # 服务器ip
    locations = /ocr # eg:http://xxx.xxx.xxx.xxx/yolo/test
    

    3)wq退出保存,启动服务

    ./frpc -c ./frpc.ini
    

    三、本地启动django服务,并设置ALLOWED_HOSTS

    四、开机自启,参考一下文章

    简书:https://www.jianshu.com/p/5f7e71121a4f

    个站:https://www.newlearner.site/2018/12/12/frp-mac.html

    知乎:https://zhuanlan.zhihu.com/p/45445979

    CSDN:https://blog.csdn.net/qq_42443261/article/details/91048585

    展开全文
  • Tomcat 配置多个端口号或多个应用

    万次阅读 2019-01-18 11:05:45
    即一个service配置多个端口,项目可以通过多个端口访问。 修改tomcat-home\conf下的server.xml,在Service下配置多个&lt;Connector&gt;即可。 &lt;Service name="Catalina"&gt;  &...
  • 如何使用Docker暴露多个端口

    千次阅读 2020-05-30 10:40:38
    So I have 3 ports that should be exposed to the machine's interface. 所以我有3个端口应该暴露在机器的界面上。 Is it pos
  • k8s Service配置多个端口

    千次阅读 2020-12-27 17:18:59
    Service apiVersion: v1 kind: Service metadata: name: xxx ...只配置了tcp的端口 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: xxx-ingress namespace: open spec: rules: - host: xxx.coding.net ...
  • netty 做服务端监听多个端口推送数据并区分接收每个端口响应回来的数据: @Sharable:被注解的ChannelHandle对应的同意实例可以被加入到一个或者多个ChannelPipelines一次或者多次,而不存在竞争条件。 * 如果在创建...
  • Golang net/http包 同时监听多个端口

    万次阅读 2018-07-25 15:01:28
    在golang中 需要同时监听多个端口 对http请求进行相同的处理(handler) 实现 代码如下 很简单 func handler1(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello!") } func main() { ...
  • 背景:最近遇到个项目部署的小要求:一个tomcat下配置多个端口去访问端口对应的JavaWeb项目原理:tomcat中conf下server.xml文件中的service节点即可配置tomcat的端口号及对应的项目配置步骤:1.打开tomcat下conf...
  • Linux下nginx配置多个端口

    万次阅读 2018-08-11 13:50:52
    将自己的项目放了进来,配置了端口号。发现phpmyadmin打不开了。看到这句话 include vhost/test.conf; 还以为在vhost文件下放入...其实:和win下面配置多个端口号一样。如下: user www www; worker_processes ...
  • Nginx负载均衡(监听多个端口

    千次阅读 2020-04-24 12:00:24
    1、监听多个端口 监听多个端口,我们可以写多个server,如: server { listen 80; ... } server { listen 90; ... } 2、实现每个端口的反向代理与负载均衡 先写一个upstream,命名为cluster, 里面写入...
  • 单个端口的配置 以及开启的方式 在github的官方文档里面有 请自行查看 官方文档 https://github.com/fatedier/frp 借助nginx实现啊 ngxin server { listen 80; server_name app1.* app2.* app3.*; send request ...
  • 网络-一个进程是否能拥有多个端口

    千次阅读 2019-03-05 09:26:36
    1.端口理解 其它网友的观点 ... 博文中打的比喻个人觉得很形象,特此引用一下。...其它网友也有相同的问题,大部分人认为一个进程可以拥有多个端口。 端口 下面是引用别人博客的话,同样觉得挺形象。socke...
  • Nginx监听多个端口

    万次阅读 2019-01-16 10:28:10
    server { listen 8080;#此处可以写多个端口 listen 8085; server_name test.com; location /api/info/ { proxy_pass http://localhost:8086/api/info/; proxy_set_header Ho...
  • 国内网站基本找不到详细的配置细节,只是基本的命令普及!...如果我们使用的服务规则比较多,例如包含多个端口,直接添加非常难管理。这时,我们需要自定义service来统合这些规则。 我们可以编写一个service的x...
  • 【Redis学习】Redis开启多个端口

    千次阅读 2018-02-07 19:38:01
    redis安装完毕启动的时候如果没有限定启动哪个配置...从上往下几关键文件: /etc/init.d/redis-server————-redis的可执行程序 /etc/redis/redis.conf—————-redis的配置文件 /usr/bin/redis-server——...
  • Trunk类型的端口可以允许多个VLAN通过,zhi可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口 port default vlan 10 默认设置在VLAN10 里面 quit 退出 port-group b 创建分组b group-member ...
  • 场景说明:192.168.30.X主机配置 4370、4371 两端口监听,proxy pass 指定应用服务器程序组成部分说明: 1)域名映射:192.168.30.X big.myserver.com 192.168.30.X big.myserver2.com 2)应用服务器程序(测试):...
  • Docker Tomcat 多个端口镜像构建

    千次阅读 2018-04-13 12:46:55
    构建多个不同端口的Tomcat镜像:我们生成的镜像是基于从镜像仓库pull下的tomcat 的,tomcat默认端口是8080,无法使用EXPOSE来设置监听端口。经过尝试后我们可以使用如下方法(在生成新镜像时覆盖原镜像setting.xml)...
  • Linux系统配置ssh监听多个端口方法

    万次阅读 2018-09-29 12:37:45
    在配置文件/etc/ssh/sshd_config文件中修改 Port 5022 #AddressFamily any#listenAddress 0.0.0.0:22 #ListenAddress :: 然后重启sshd,命令为service sshd restart,使其生效 ...2、要想sshd程序监听多个端口...
  • apache httpd配置多个端口

    千次阅读 2019-02-22 14:01:42
    3 配置多个监听端口,8080,9080 默认是 , 改成: #Listen 12.34.56.78:80 #Listen 80 Listen 8080 Listen 9080   注意: 对于系统中没有ssl.conf文件的,httpd是不会占用443端口测。 对于系统...
  • Idea中一个服务按多个端口同时启动

    千次阅读 2019-06-13 20:25:59
    Idea中一个服务按多个端口同时启动 前言 为了创建高可用的微服务,本文将介绍对于一个微服务的Client,如何配置多个端口同时启动。 解决方法 首先,创建一个spring boot的Client(不用在配置文件中配置端口号),...
  • 端口号可以用来标识同一主机上通信的不同应用程序,端口号+IP地址就可以组成一套接字,用来标识一进程 2.端口号的应用场景 在TCP/IP协议中,用“源IP地址”,“目的IP地址”,“源端口号”,“目的端口...
  • CentOS7 配置 SSH监听多个端口方法

    千次阅读 2019-10-07 05:39:20
    一、修改ssh默认端口,防止暴力破解,让系统安全一点点: i. 在配置文件/etc/ssh/sshd_config文件中修改 17 Port 5522 18 #AddressFamily any 19 #ListenAddress 0.0.0.0 20 #ListenAddress :: ii. 然后...
  • ----------------使用nginx向外暴露一个端口而内部进行转发并只使用本机的多个端口------------------ 此情况适合被限制只能访问唯一一个端口的场景,例如公司限制了用户只能访问唯一的80端口。 之前使用过sslh, ...
  • Springboot 一个项目多个端口启动

    千次阅读 2019-03-02 16:50:36
    IDEA一工程如何启动次 2017年12月28日 09:02:10一只想飞的追梦者阅读数:4937 step 1 在IDEA上点击Application右边的下三角 ,弹出选项后,点击Edit Configuration step 2 打开配置后,将默认的Single ...
  • 比如我的服务器ip 是 192.168.1.201 A网站:192.168.1.201:8001 B网站:192.168.1.201:8002 A网站的站点可以这样设置...最后添加一新的域名为 192.168.1.201:8001 然后删除 www.test.com 的域名,访问就可以了 ...
  • 我前两天就遇到这样一问题,我们公司有项目Tomcat绑的是80端口(虽然绑了域名,但是还是用的IP),而且项目已经布置,公司为了保障稳定绝对不会让我修改它的端口。但是官网又要上线,之前是万网服务器,纯的静态页面...
  • Docker容器 暴露多个端口

    万次阅读 2018-11-08 12:19:00
    1、创建容器是指定 docker run -p &lt;host_port1&gt;:&lt;container_port1&gt; -p &lt;host_port2&gt;...2、修改dockerfile expose所需要的端口,这样可以免去-p参数。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,249,577
精华内容 499,830
关键字:

多个端口