首先去官網下載軟體包,解壓,路徑最好不要有中文
Nginx配置的路徑問題
由於在Windows下檔案路徑可以用”\”, 也可以用”\\”, 也可以用”/”作為路徑做分隔字元。但”\”最容易引發問題,所以要盡量避免使用。
不要添加PATH,否則會引發錯誤,config檔案路徑找不到
比如我解壓在E盤
cmd命令定位到nginx.exe所在檔案夾cd E:\WorkSoftWare\nginx-1.10.1
然後執行,首先保證nginx.conf檔案配置沒問題
其實nginx最重要的和最主要的工作就是設定檔,其他沒什麼需要我們應用開發人員關注的,除非想修改底層源碼.
nginx.conf配置如下:
#user nobody;worker_processes 1; #背景工作處理序的個數,可以配置多個#全域錯誤記錄檔及PID檔案error_log /WorkSoftWare/nginx-1.10.1/logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid /WorkSoftWare/nginx-1.10.1/logs/nginx.pid;events { worker_connections 1024; #單個進程最大串連數(最大串連數=串連數*進程數)}#設定http伺服器,利用它的反向 Proxy功能提供負載平衡支援 http { include mime.types; #設定設定檔位置,這裡的conf是指nginx.conf所在的目錄,也可以用絕對路徑指定其他地方的設定檔 default_type application/octet-stream; #預設類型-8進位檔案流 #設定日誌格式 #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 /WorkSoftWare/nginx-1.10.1/logs/access.log main; sendfile on; #是否啟用sendfile()函數,比預設模式更有效率 #tcp_nopush on; #將HTTP回應標頭壓縮到一個包中發送,僅在sendfile開啟時才能配合使用#連線逾時時間 #keepalive_timeout 0; keepalive_timeout 65; gzip on; #啟用Gzip壓縮#伺服器的叢集#設定負載平衡的伺服器列表 支援多組的負載平衡,可以配置多個upstream 來服務於不同的Server. #nginx 的 upstream 支援 幾 種方式的分配 #1)、輪詢(預設) 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。 #2)、weight 指定輪詢幾率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。 跟上面樣,指定了權重。 #3)、ip_hash 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。 #4)、fair #5)、url_hash #Urlhash#upstream imicrosoft.net #{ #伺服器叢集名字 #伺服器配置 weight是權重的意思,權重越大,分配的機率越大。#server 192.98.12.60:1985 weight=3 max_fails=2 fail_timeout=30s; #server 192.98.12.42:8086 weight=3 max_fails=2 fail_timeout=30s; #weigth參數表示權值,權值越高被分配到的幾率越大 #1.down 表示單前的server暫時不參與負載 #2.weight 預設為1.weight越大,負載的權重就越大。 #3.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。 #本例是指在同一台伺服器,多台伺服器改變ip即可 #server 127.0.0.1:8055 weight=4 down;#server 127.0.0.1:8010 weight=5 backup; #}upstream localhost{ server 127.0.0.1:9000 weight=3 max_fails=2 fail_timeout=200s;server 127.0.0.1:8086 weight=5 max_fails=2 fail_timeout=200s; } #當前的Nginx的配置,Proxy 伺服器的地址,即Nginx安裝的伺服器位址、監聽連接埠、預設地址,#設定虛擬機器主機,預設為監聽80連接埠 server { listen 9090; #偵聽9090連接埠 #對於server_name,如果需要將多個網域名稱的請求進行反向 Proxy,可以配置多個server_name來滿足要求 server_name localhost; #當前服務的網域名稱 charset utf8; #charset koi8-r; #設定本虛擬機器主機的訪問日誌 #access_log logs/host.access.log main;#如果訪問 /images/*, /js/*, /css/* 資源,則直接取本地檔案,不用轉寄。#但如果檔案較多效果不是太好。 #location ~ .*\.(jpg|jpeg|gif|css|png|ico|html)$ #{ # expires 30d; # root /nginx-1.10.1;#root: # break; #}#對 "/" 啟用負載平衡 location / { root html; #預設首頁目錄在nginx安裝目錄的html子目錄 index index.html index.htm index.aspx; #沒有索引頁時,羅列檔案和子目錄 #proxy_pass http://www.imicrosoft.net; #跟載均衡伺服器的upstream對應 autoindex on; #沒有索引頁時,羅列檔案和子目錄 #保留使用者真實資訊 proxy_redirect off; #url不跳轉 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #緩衝區代理緩衝使用者端請求的最大位元組數,可以理解為先儲存到本地再傳給使用者 # client_body_buffer_size 128k; # #跟後端伺服器連線逾時時間 發起握手等候響應逾時時間 # proxy_connect_timeout 12; # #串連成功後 等待後端伺服器回應時間 其實已進入後端的排隊之中等候處理 # proxy_read_timeout 90; # #代理請求緩衝區 這個緩衝區間會儲存使用者的頭資訊一共Nginx進行規則處理 一般只要能儲存下頭資訊即可 # proxy_send_timeout 90; # #同上 告訴Nginx儲存單個用的幾個Buffer最大用多大空間 # proxy_buffer_size 4k; # proxy_buffers 4 32k; # #如果系統很忙的時候可以申請國內各大的proxy_buffers 官方推薦 *2 # proxy_busy_buffers_size 64k; # #proxy 緩衝臨時檔案的大小 proxy_temp_file_write_size 64k; # proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; proxy_max_temp_file_size 128m; #啟動代理 proxy_pass http://localhost; client_max_body_size 10m; #允許用戶端請求的最大單個檔案位元組數}#樣本一 #location / { # proxy_pass http://imicrosoft.net;# # proxy_redirect default; # # proxy_set_header Host $host; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #} #樣本二#location /tileservice { # proxy_pass http://cluster/MongoTileService/tileService; # proxy_set_header Host $host; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 #對 "/XXXXX.PHP" 啟用負載平衡 #location ~ \.php$ { # proxy_pass http://127.0.0.1; #}#location /baidu #{#proxy_pass http://www.google.com;#proxy_set_header Host $host;#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #}}
結果如圖:
IIS網站