1. 程式人生 > >nginx 配置域名轉發

nginx 配置域名轉發

客戶端 load remote images 響應時間 worker request client include

自己測試環境,配置下載目錄和一個jenkins的地址:

域名跳轉,反向代理

# cat ../nginx.conf
user www www;
worker_processes  1;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    worker_connections  65535;
    use epoll;
}
http {
    include       mime.types;
    default_type  application
/octet-stream; log_format main $remote_addr - $remote_user [$time_local] "$request" "$upstream_addr" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$request_time" "$host"; access_log logs/access.log main; sendfile on; keepalive_timeout
60; gzip on; client_max_body_size 50m; #緩沖區代理緩沖用戶端請求的最大字節數,可以理解為保存到本地再傳給用戶 client_body_buffer_size 256k; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; proxy_connect_timeout 300s; #nginx跟後端服務器連接超時時間(代理連接超時) 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; #不允許代理端主動關閉連接 upstream tomcat_test1 { server 192.168.37.108:8080; } upstream tomcat_2 { server 192.168.37.109:8080; } include /usr/local/nginx/conf/vhosts/*.conf; }

接下來是server 主機的配置:

# cat /usr/local/nginx/conf/vhosts/test.conf 
server {
        listen       80;
        server_name  www.aliluo.top;


        location /images {
                root    /;
                rewrite ^/image/(.*)$ /image/$1 break;
                access_log /usr/local/nginx/logs/test.log main;
                }
        location /upload {  
                autoindex on;  
                autoindex_exact_size on;  
                autoindex_localtime on;  
                alias   /data/upload;  
                access_log /usr/local/nginx/logs/upload.log main;
                }  
        location /jenkins {
                #反向代理的地址
                proxy_pass http://tomcat_2/jenkins;  
                #設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP
                proxy_set_header Host $host;
                proxy_set_header X-Real-Ip $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                access_log /usr/local/nginx/logs/tomcat_test1.log main;
                }

        }

啟動nginx後,打來鏈接,就會出現jenkins界面,輸入用戶名,密碼可以正常登陸:

技術分享

登陸頁面:

技術分享

備註:

  1)使用nginx的rewrite 同樣可以是實現這個功能,可能配置上會有小許不同;

  2)使用proxy_pass,如果跳轉後輸入用戶名密碼無法登陸,可能是由於以下參數沒有配置,該參數具體含義可以參考nginx有關文章自行學習:

  proxy_set_header Host $host;

  proxy_set_header X-Real-Ip $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;

nginx 配置域名轉發