配置 nginx 反向代理

    因为公司服务器的 tomcat 服务要对外服务,非80端口在访问的时候要域名加上端口,比较麻烦,因此配置 nginx 反向代理来实现域名访问,利用 nginx 反向代理将不一样域名的请求转给不一样的端口处理;nginx

    编辑 nginx 配置文件 nginx.conf  后端

#############################################################################缓存

gzip on;tomcat

    client_max_body_size 50m; #缓冲区代理缓冲用户端请求的最大字节数,能够理解为保存到本地再传给用户服务器

    client_body_buffer_size 256k;负载均衡

    client_header_timeout 3m;阿里云

    client_body_timeout 3m;url

    send_timeout 3m;代理

    proxy_connect_timeout 300s; #nginx跟后端服务器链接超时时间(代理链接超时)server

    proxy_read_timeout 300s; #链接成功后,后端服务器响应时间(代理接收超时)

    proxy_send_timeout 300s;

    proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小

    proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k如下的话,这样设置

    proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)

    proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘

    proxy_ignore_client_abort on; #不容许代理端主动关闭链接

 

server

{

    listen 80;

    server_name 域名;

    location / {

        proxy_redirect off;

        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_pass http://localhost:3000;

    }

    access_log logs/access.log;

}

#############################################################################

配置负载均衡则使用 

upstream lb_name {

    server IP1:port;

        server IP2:port;

}

而后将 server_name 后面的转发地址域名改成 lb_name 便可;

 

问题1:转发域名时会遇到域名重定向,配置过程当中 tomcat 使用了 js window.location.href = "org/index.do"; 重定向,过程当中 nginx  server_name = http://localhost:3000; 转换地址没法访问,配置成 server_name = http://localhost:3000/ 添加了 “ / ”后能够访问;

 

问题2:阿里云万网解析配置二级域名的时候,居然能够配置两个相同的二级域名并指向不一样的 IP 地址,项目从老环境迁移至新环境,域名没变,配置的解析地址变了(老项目的坑么);

 

问题3:nginx 配置反向代理能够使用 proxy_set_header 自定义 http 协议的 header,配置的时候要仔细,配置出错就会致使 url 没法解析成功;

相关文章
相关标签/搜索