配置 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 沒法解析成功;

相關文章
相關標籤/搜索