使用Nginx代理Jarboot时如何配置

原创
2021/12/22 16:17
阅读数 118

Jarboot有时需要通过Nginx来做反向代理,这个时候该如何配置呢。

首先首页地址是:http://127.0.0.1:9899/jarboot/index.html,前端的访问路由以/jarboot/*开头,后端的API接口以/api/jarboot/*开头,同时前端有用到Websocket连接,因此也需要配置Websocket代理。

如下的配置均使用默认的127.0.0.1,可以根据具体的环境情况修改。

Websocket配置,在server外面,http内。

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''   close;
        }
    upstream websocket {
        #ip_hash;
        server 127.0.0.1:9899; 
    }

然后配置前端路由代理如下,最后两条配置是普通http请求升级Websocket长连接的。

        location ^~ /jarboot/ {
          proxy_pass http://127.0.0.1:9899/jarboot/;
          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_connect_timeout 10;
          proxy_read_timeout 360;
          access_log off;
          proxy_redirect off;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
        }

最后需要配置后端API代理如下:

        location ^~ /api/jarboot/ {
          proxy_pass http://127.0.0.1:9899/api/jarboot/;
          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_connect_timeout 10;
          proxy_read_timeout 360;
          access_log off;
          proxy_redirect off;
        }

 

完整的配置文件示例如下,根据具体环境修改IP地址:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''   close;
        }
    upstream websocket {
        #ip_hash;
        server 127.0.0.1:9899; 
    }

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location ^~ /jarboot/ {
          proxy_pass http://127.0.0.1:9899/jarboot/;
          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_connect_timeout 10;
          proxy_read_timeout 360;
          access_log off;
          proxy_redirect off;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
        }
        location ^~ /api/jarboot/ {
          proxy_pass http://127.0.0.1:9899/api/jarboot/;
          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_connect_timeout 10;
          proxy_read_timeout 360;
          access_log off;
          proxy_redirect off;
        }

        #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   html;
        }
    }
}

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部