nginx簡單配置


1、nginx反向代理配置

window下
啓動nginx C:\server\nginx-1.0.2>nginx.exe
中止nginx C:\server\nginx-1.0.2>nginx.exe -s stopcss

#設定實際的服務器列表
    upstream tomcatserver1{
        server 127.0.0.1:8080;
    }
    
#HTTP服務器
server {
         #監聽8090端口,用於HTTP協議
        listen       8090;
        #定義使用localhost訪問
        server_name  localhost;
        
        #首頁
        index index.html
        
        #編碼格式
        charset utf-8;
        
        #指向webapp的目錄
        #root D:\01_Workspace\Project\github\zp\SpringNotes\spring-security\spring-shiro\src\main\webapp;
        
        #反向代理的路徑(和upstream綁定),location 後面設置映射的路徑
        location / {
            proxy_pass   http://tomcatserver1;
        }     
    }    

2、負載均衡配置

#設定負載均衡的服務器列表
    upstream load_balance_server {
        #weigth參數表示權值,權值越高被分配到的概率越大
        server 192.168.1.11:80   weight=5;
        server 192.168.1.12:80   weight=1;
        server 192.168.1.13:80   weight=6;
    }

#HTTP服務器
   server {
        #偵聽80端口
        listen       80;

        #定義使用www.xx.com訪問
        server_name  www.helloworld.com;

        #對全部請求進行負載均衡請求
        location / {
            root        /root;                 #定義服務器的默認網站根目錄位置
            index       index.html index.htm;  #定義首頁索引文件的名稱
            proxy_pass  http://load_balance_server ;#請求轉向load_balance_server 定義的服務器列表

            #如下是一些反向代理的配置(可選擇性配置)
            #proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            #後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_connect_timeout 90;          #nginx跟後端服務器鏈接超時時間(代理鏈接超時)
            proxy_send_timeout 90;             #後端服務器數據回傳時間(代理髮送超時)
            proxy_read_timeout 90;             #鏈接成功後,後端服務器響應時間(代理接收超時)
            proxy_buffer_size 4k;              #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
            proxy_buffers 4 32k;               #proxy_buffers緩衝區,網頁平均在32k如下的話,這樣設置
            proxy_busy_buffers_size 64k;       #高負荷下緩衝大小(proxy_buffers*2)
            proxy_temp_file_write_size 64k;    #設定緩存文件夾大小,大於這個值,將從upstream服務器傳

            client_max_body_size 10m;          #容許客戶端請求的最大單文件字節數
            client_body_buffer_size 128k;      #緩衝區代理緩衝用戶端請求的最大字節數
        }
    }


    


3、網站有多個 webapp 的配置


http 的默認端口號是 80,若是在一臺服務器上同時啓動 3 個 webapp 應用,都用 80 端口,確定是不成的。因此,這三個應用須要分別綁定不一樣的端口號
  html

 upstream product_server{
        server www.helloworld.com:8081;
    }

    upstream admin_server{
        server www.helloworld.com:8082;
    }

    upstream finance_server{
        server www.helloworld.com:8083;
    }
    
  server {
    #此處省略一些基本配置
    #默認指向product的server
    location / {
        proxy_pass http://product_server;
    }

    location /product/{
        proxy_pass http://product_server;
    }

    location /admin/ {
        proxy_pass http://admin_server;
    }

    location /finance/ {
        proxy_pass http://finance_server;
    }
}

 


4、https 反向代理配置


使用 nginx 配置 https 須要知道幾點:
HTTPS 的固定端口號是 443,不一樣於 HTTP 的 80 端口
SSL 標準須要引入安全證書,因此在 nginx.conf 中你須要指定證書和它對應的 keyandroid

HTTPS服務器
  server {
      #監聽443端口。443爲知名端口號,主要用於HTTPS協議
      listen       443 ssl;

      #定義使用www.xx.com訪問
      server_name  www.helloworld.com;

      #ssl證書文件位置(常見證書文件格式爲:crt/pem)
      ssl_certificate      cert.pem;
      #ssl證書key位置
      ssl_certificate_key  cert.key;

      #ssl配置參數(選擇性配置)
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      #數字簽名,此處使用MD5
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;

      location / {
            root   /home/wwwroot/default;
            index  index.html index.htm;
	    } 

	  location ~/hone/{
              proxy_pass http://127.0.0.1:8080;
              index  dashboard index; 
              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_set_header X-Forwarded-Proto $scheme;
	    }
  
}

 

5、nginx配置多個文件夾

server {
        
        listen       80;
        server_name  localhost;
		
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

		location /test {
           root  c:/www/; #對應www目錄下的test目錄,注意文件名和文件夾名不要重複
           index index.html index2.htm; #html文件名稱 
        }  
		
        location / {
           root   c:/www/default; #對應www目錄下的default目錄
           index index.html index2.htm; #html文件名稱 
        }  

        	location ~ .*\.     (gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
          root  c:/www/test/;
          if (-f $request_filename) {
            expires 1d;
            break;
            }
        }
		
}

當我輸入 localhost/ 、localhost/login.html 對應目錄是 /www/default
當我輸入 localhost/test/ 、localhost/test/login.html 對應目錄是 /www/testnginx

可是這樣配置有個問題,就是靜態資源的訪問問題,由於每一個項目的靜態資源是不在一個文件夾下的git

 

6、nginx配置同一個ip下不一樣端口映射不一樣的項目

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   c:/www/default/;
            index  index.html index.htm;
        }
		
		location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
		{
			root c:/www/default/;
			expires      1d;
		}
		
       
    }
	
	server {
        listen       80;
        server_name  abc.localhost;#二級域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   c:/www/test/;
            index  index.html index.htm;
        }
		
	 
		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {
          root  c:/www/test/;
          if (-f $request_filename) {
            expires 1d;
            break;
            }
        }
		
       
    }


7、nginx實現移動端和PC訪問不一樣頁面github

location / {
 #判斷移動端,跳轉轉到m.aaa.com
 if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
		rewrite ^/(.*)$ http://m.aaa.com redirect;#這裏隨意使用,這一行表明域名欄會跳轉到m.aaa.com
		#proxy_pass http://101.200.141.xx:8909;#這一行表明域名不會改變,繼續使用aaa.com,可是真正使用的是           m.aaa.com
	}
}

 

8、location 路徑匹配

location / {
            root   /home/wwwroot/default;
            index  index.html index.htm;
	    } 

		  location ~/hone/{
              proxy_pass http://127.0.0.1:8080;
              index  dashboard index; 
              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_set_header X-Forwarded-Proto $scheme;
	    }
相關文章
相關標籤/搜索