下載下傳
-
nginx
下載下傳位址:http://nginx.org/en/download.html
穩定版本:1.12.2
-
zlib
下載下傳位址:https://sourceforge.net/projects/libpng/files/zlib/
gzip子產品需zlib庫
-
pcre
下載下傳位址:https://sourceforge.net/projects/pcre/files/pcre/
rewrite子產品需pcre庫
-
openssl
下載下傳位址:https://www.openssl.org/source/openssl-1.0.2n.tar.gz
ssl功能需openssl庫
指定這個版本1.0.2n,因為下載下傳了最新版本安裝時報錯
預編譯環境
-
安裝make:
yum -y install gcc automake autoconf libtool make
-
安裝g++:
yum install gcc gcc-c++
安裝
- 安裝zlib
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/zlib-.tar.gz
cd zlib-
./configure
make
make install
- 安裝pcre
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/pcre-.tar.gz
cd pcre-
./configure
make
make install
- 安裝openssl
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/openssl-n.tar.gz
cd openssl-n
./config
make
make install
- 安裝nginx
cd /usr/local/src
tar -zxvf /usr/local/setup/nginx/nginx-.tar.gz
cd nginx-
======在./configure時注意修改zlib、pcre、openssl版本号:
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre- --with-zlib=/usr/local/src/zlib- --with-openssl=/usr/local/src/openssl-n
make
make install
操作指令
啟動
/usr/local/nginx/nginx
檢查配置
/usr/local/nginx/nginx -t
平滑重新開機(修改配置檔案後,可使用此指令重新開機,不影響運作) /usr/local/nginx/nginx -s reload
結束nginx(待nginx程序執行任務完畢後退出)
/usr/local/nginx/nginx -s quit
直接退出nignx
/usr/local/nginx/nginx -s stop
nginx配置詳解
參考:
https://blog.csdn.net/denghonghao/article/details/79620454
https://blog.csdn.net/yougoule/article/details/78186138
http://www.runoob.com/linux/nginx-install-setup.html
多tomcat 80端口共享配置
nginx.conf配置資訊如下:
server {
listen ;
server_name a1.xxx.com;
location / {
proxy_pass http://a1.host:/;
}
}
server {
listen ;
server_name a2.xxx.com;
location / {
proxy_pass http://a2.host:/;
}
}
server {
listen ;
server_name b1.xxx.com;
location / {
proxy_pass http://b1.host:/;
}
}
注解:
a、b兩個tomcat分别使用端口8080和8081。a tomcat釋出2個應用分别使用host:name為a1.host和a2.host; b tomcat釋出1個應用 host:name 為b1.host。
3個server分别監聽 a1.xxx.com、a2.xxx.com、b1.xxx.com 的80端口,反向代理
a1.host:8080、 a2.host:8081、b1.host:8080。其中相應的a1.xxx.com與a1.host可以一樣,總之目的是用戶端使用80端口通路伺服器上的8080和8081端口。
nginx實作負載均衡
nginx.conf配置如下:
server {
listen ;
server_name www.xxx.com;
location / {
proxy_pass http://balance_serveralias;
}
}
upstream balance_serveralias {
#ip_hash;
server : weight=;
server : weight=;
}
注解:
server_name指定了用戶端通路位址,balance_serveralias 隻是别名,沒有實際意義
- -
常見模式
- 輪詢(預設),每個請求按時間順序逐一配置設定到不同的負載伺服器,如果負載伺服器down掉,能自動剔除。
upstream serveralias {
server :;
server :;
}
- 權重,指定輪詢幾率,weight比例決定通路幾率,将配置較好的機器配更高的權重,預設權重為1。
upstream serveralias {
server : weight=;
server : weight=;
}
- ip_hash,将用戶端ip通過hash算法比對固定的一台伺服器,這是唯一一種能保證session同步的模式;其他模式下隻有第一次通路的機器儲存有使用者的session資訊,需要添加session共享元件。
upstream serveralias {
ip_hash;
server :;
server :;
}
- fair,需要添加第三方插件,按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。
upstream serveralias {
server :;
server :;
fair;
}
- url_hash,需要添加第三方插件,按通路url的hash結果來配置設定請求,使每個url定向到同一個後端伺服器,後端伺服器為緩存時比較有效。
upstream serveralias {
server .:;
server .:;
hash $request_uri;
hash_method crc32;
}
裝置狀态參數設定
- weight 權重
- down 表示這台機器暫時不參與負載
- backup 災備,在其他機器忙或者down的情況下使用
注意事項
參與負載的伺服器名使用ip加端口的形式指定,域名也可以,但會被先解析成ip位址再參與負載。如tomcat指定localhost:8080通路a目錄,hostalias:8080通路目錄b,參與負載的機器即使配置為hostalias:8080,最終通路的還是目錄a(即localhost:8080)
常見問題
出現nginx.pid找不到的情況時,重新指定nginx.conf位置 /usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf