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定向到同一个后端服务器,后端服务器为缓存时比较有效。