1. 程式人生 > >nginx 根據域名開啟相應首頁

nginx 根據域名開啟相應首頁

遇到一個需求:首先網站有一個前端一個後臺  由於用的session  前後端混亂了 所以在域名解析的時候   www.xxxxx.com  指向前端首頁      system.xxxxx.com 指向後臺首頁;

整個專案的前後端程式碼是分開的  但是總歸是一個專案。在網上看到有很多的nginx配置都是對多個應用(多個網站的域名轉發) 

我的這個專案  是  nginx 和tomcat在一臺機器上     nginx處理靜態檔案   其他的交給tomcat   tomcat監聽8099埠

完整配置如下:



user  root;
worker_processes  2;


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


pid        logs/nginx.pid;




events {

#windows使用者  不用  use poll;

    use epoll;
    worker_connections  2048;
}




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;
    
    
    # gzip壓縮功能設定
    gzip on;
    gzip_min_length 1k;
    gzip_buffers    4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    
    
    #FastCGI相關引數是為了改善網站的效能:減少資源佔用,提高訪問速度。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;


  # http_proxy 設定
    client_max_body_size   10m;
    client_body_buffer_size   128k;
    proxy_connect_timeout   75;
    proxy_send_timeout   75;
    proxy_read_timeout   75;
    proxy_buffer_size   4k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size   64k;
    proxy_temp_file_write_size  64k;
    proxy_temp_path   /mnt/software/nginx/proxy_temp 1 2;


    #設定請求緩衝
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    #設定對  80埠訪問的限制
server{ 
listen   80 default; 
server_name      _; 
return 403; 



    server {
        listen       80;
       
        server_name  *.xxxxx.com;
        charset utf-8;

        #access_log  logs/host.access.log  main;




index index.html index.htm index.jsp index;
#對  *.xxxxx.com 的域名  匹配   (*後面不帶路徑和引數   也就是使用者第一次計入網站的  域名    *.xxxxx.com   or     *.xxxxx.com/
location = / {       

if ($host = 'system.xxxxx.com'){

#重定向為:system.xxxxx.com/www/system/index

rewrite ^(.*) /www/system/index last;
}

if ($host = 'test.xxxxx.com'){

#重定向為:system.xxxxx.com/www/front/index

rewrite ^(.*) /www/front/index/ last;
}
交給tomcat伺服器處理
proxy_pass   http://localhost:8099/; 
}
    
location / {

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:8099/;

}



          #靜態檔案nginx處理
location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {  
root /mnt/software/tomcat/webapps/; 
expires 7d; 


location ~ \.(js|css)$ {  
root /mnt/software/tomcat/webapps/; 
expires 1h; 


location ~^/(WEB-INF)/{
deny all;
}



        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

   }


}