救助nginx反向代理之多端口映射的实现

webshow 2020-3-10 602

1.1 http:www.test.com默认是443,然后访问本地8083;

1.2 8083代表本地的前端工程访问地址,也就是通过www.test.com访问后显示的地址

1.2 但现在就是前端需要访问后台数据后台端口是20030,现在就卡在这里,因为目前要代理的应用是需要开放多个端口才可以完成显示的,但现在目前只能够代理一个8083端口到443,其它端口就会卡在主页界面。

1.3 如何做到访问前端www.test.com可以访问后台20030的数据端口?。

1.4 下张图片是我代理访问后,代理的程序在多端口下无法显示的问题

上传的附件:
最新回复 (4)
  • webshow 2020-3-10
    引用 2
    贴出代理配置代码:
    server {
        listen                     80;
        listen                     443 ssl http2;
        server_name                www.test.com;
        ssl_certificate            /home/myagent/sites/www.test.com/ssl/site.crt;
        ssl_certificate_key        /home/myagent/sites/www.test.com/ssl/site.key;
        ssl_prefer_server_ciphers  on;
        ssl_ciphers                ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache          shared:SSL:5m;
        ssl_session_timeout        5m;
        keepalive_timeout          75s;
        keepalive_requests         100;
        access_log                 /home/myagent/sites/www.test.com/log/nginx/access.log;
        error_log                  /home/myagent/sites/www.test.com/log/nginx/error.log;

        if ($scheme = http) {
            return  301 https://$host$request_uri;
        }

        gzip                       off;

        location / {
            proxy_pass            http://127.0.0.1:8083;
            proxy_set_header      Host $host;
            proxy_set_header      X-Real-IP $remote_addr;
            proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header      X-Forwarded-Proto $scheme;
            proxy_set_header      Upgrade $http_upgrade;
            proxy_set_header      Connection $connection_upgrade;
            proxy_http_version    1.1;
            proxy_redirect        off;
            client_max_body_size  50m;
        }
    }
    我自己在自定义处增加了代码为

       location /rest{
         proxy_pass http://127.0.0.1:20030; 
         proxy_set_header  Host  $host; 
         proxy_set_header  X-Real-IP  $remote_addr; 
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
       }

    没有任何效果
  • webshow 2020-3-10
    引用 3
    防火墙已经放行该端口。直接通过域名带端口访问网站全部正常
  • 虚竹 2020-3-11
    引用 4
    直接访问都正常,那就是浏览器安全模型的限制了。
    不同端口,也认作是跨域访问,是被浏览器禁止的。
    可以考虑开启cors,以允许跨域访问。
  • webshow 2020-3-11
    引用 5
    已经开启了开启cors,问题仍旧没有解决。
返回
发新帖