Nginx安裝配置
Nginx 安裝
1. 解壓nginx安裝包
2. 關閉防火牆、殺毒軟件,檢查服務器上的ip是否是固定的(ip不設置固定會變的話會出錯的)
3. 因爲nginx軟件默認的安裝端口是80所以在安裝nginx之前首先檢查當前系統是否已經有別的軟件佔用該軟件如果別的服務已經佔用80端口的話;解決方法有兩種如下:
1.關閉佔用80端口的進程
2.修改nginx配置文件,修改文件/nginx/conf/nginx.conf中的端口如下圖:
4. 進入過nginx文件夾中點擊nginx.exe安裝文件
查看nginx是否安裝成功可以查看nginx/logs下的error日誌;如果安裝正確的情況下error是沒有錯誤提示的,如果安裝不成功可以到error下查找相關錯誤信息。
Nginx配置
安裝好nginx以後要做的就是配置nginx配置文件已達到負載均衡的目的。
修改nginx/conf/nginx.conf文件
主要修改地方有:
1、http{}中添加upstream模塊(添加web服務器地址用來達到負載均衡目的)
Server 後面要加的就是web程序的ip地址
upstream resinserver{
ip_hash;//輪詢策略分類主要有輪詢、ip_hash
server 192.168.159.10:8080(部署web應用呈程序的ip服務器);
server192.168.159.11:8080(部署web應用呈程序的ip服務器);
}
2、修改server{}
server {
listen 8080; //改成服務器實際端口號
location / {
proxy_pass http://resinserver; //proxy_pass代理地址就是upstream名稱配置的地址
}
3、nginx自帶是沒有針對負載均衡後端節點的健康檢查的,但是可以通過默認自帶ngx_http_proxy_module 模塊和 ngx_http_upstream_module 模塊中的相關指令來完成當後端節點出現故障時,自動切換到下一個節點來提供訪問。
通過設置fail_max_fails定義的時間段內連接該主機的失敗次數,以此來斷定 fail_timeout 定義的時間段內該主機是否可用
配置如下圖:
//下面是完整配置:
#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
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 on;
upstreamsite {
ip_hash;
#server192.168.1.106:10002 ;
#server115.29.54.31:10002 max_fails=3 fail_timeout=10s;
server192.168.1.117:9203 max_fails=3 fail_timeout=10s;
server192.168.1.102:8010 max_fails=3 fail_timeout=10s;
}
server {
listen 18000;
server_name 192.168.1.102;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_passhttp://site;
}
#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;
}
}
}
注意點:
服務器每次重啓後都要重啓nginx服務,重啓的步驟是:
1. 進入/nginx文件夾下,即可看到nginx.bat運行程序;點擊啓動
2. 啓動以後可以看到提示界面
輸入1表示啓動、2表示關閉、3表示重啓、4表示退出
重啓的話輸入1在按enter健表示已經重啓
拓展:
Nginx是如何實現負載均衡的,Nginx的upstream目前支持以下幾種方式的分配
1、輪詢(默認)
每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。
2、weight
指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。
2、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。
3、fair(第三方)
按後端服務器的響應時間來分配請求,響應時間短的優先分配。
4、url_hash(第三方)
按訪問url的hash結果來分配請求,使每個url定向到同一個後端服務器,後端服務器爲緩存時比較有效。