2014年1月13日 18:15:25nginx
同一個域名下,不一樣uri走不一樣的應用(不一樣的web根目錄)web
實現方式:apache
Apache分別監聽兩個端口,對應不一樣的應用windows
nginx監聽80端口,利用location指令根據匹配目錄的不一樣將請求轉發到不一樣的端口瀏覽器
nginx和Apache都在同一臺windows上緩存
nginx下載windows版本,解壓->簡單配置下->保證能啓動nginx服務器
命令行啓動時要注意:要進入到解壓文件內去執行nginx.exe不能簡單的寫到環境變量了事app
下邊是個人主配置文件(這些配置足夠啓動nginx了):tcp
nginx.confspa
1 #user nobody; 2 worker_processes 1; 3 4 error_log F:/vc9server/nginx/logs/error.log; 5 error_log F:/vc9server/nginx/logs/error.log notice; 6 error_log F:/vc9server/nginx/logs/error.log info; 7 8 pid F:/vc9server/nginx/logs/nginx.pid; 9 10 events { 11 worker_connections 1024; 12 } 13 14 http { 15 include mime.types; 16 default_type application/octet-stream; 17 18 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 19 '$status $body_bytes_sent "$http_referer" ' 20 '"$http_user_agent" "$http_x_forwarded_for"'; 21 22 access_log F:/vc9server/nginx/logs/access.log main; 23 24 sendfile on; #跟內核交互用 緩存 25 #tcp_nopush on; 26 27 #keepalive_timeout 0; 28 keepalive_timeout 65; 29 30 server_names_hash_bucket_size 64; 31 include apache.conf; #主要的反向代理配置都寫在這個文件裏了 32 }
apache.conf
1 ##2014年1月11日 2 #反向代理 3 upstream zend 4 { 5 server 127.0.0.1:8089; 6 } 7 8 upstream yaf 9 { 10 server 127.0.0.1:8088; 11 } 12 13 server 14 { 15 listen 80; 16 server_name www.example1.com; 17 18 location ^~ /abc { 19 proxy_pass http://zend; #轉發到上邊定義的zend代理中去 20 21 proxy_redirect off; 22 proxy_set_header Host $host; 23 proxy_set_header X-Real-IP $remote_addr; 24 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 25 } 26 27 location / 28 { 29 proxy_pass http://yaf; #轉發到上邊定義的yaf代理中去 30 31 proxy_redirect off; 32 proxy_set_header Host $host; 33 proxy_set_header X-Real-IP $remote_addr; 34 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 35 proxy_set_header X-Scheme $scheme; 36 } 37 } 38 server 39 { 40 listen 80; 41 server_name www.example2.com; 42 43 location / 44 { 45 proxy_pass http://zend; #轉發到zend代理 46 47 proxy_redirect off; 48 proxy_set_header Host $host; 49 proxy_set_header X-Real-IP $remote_addr; 50 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 51 } 52 }
解釋:
1.請求 example1 時
URI爲/abc開頭的轉發到上邊定義的zend代理,其他的URI請求轉到yaf代理
2.請求 example2 時
將全部請求轉發到zend代理
3.配置中的proxy_set_header 是將nginx獲得的請求信息(頭信息等等)複製一份給代理服務器
4.nginx指令要有分號結尾,監聽多個域名時,域名間用空格隔開後再以分號結尾
最後
在Apache中監聽apache.conf中zend,yaf兩個代理指定的域名+端口 或 ip+端口,並做相應的配置
nginx 和 Apache重啓後瀏覽器裏訪問試試