欢迎使用CSDN-markdown编辑器

来源:互联网 发布:买淘宝自动发货 编辑:程序博客网 时间:2024/06/05 03:01

Nginx安装配置
Nginx 安装
1. 解压nginx安装包
2. 关闭防火墙、杀毒软件,检查服务器上的ip是否是固定的(ip不设置固定会变的话会出错的)
3. 因为nginx软件默认的安装端口是80所以在安装nginx之前首先检查当前系统是否已经有别的软件占用该软件如果别的服务已经占用80端口的话;解决方法有两种如下:
一 关闭占用80端口的进程
二 修改nginx配置文件,修改文件/nginx/conf/nginx.conf中的端口如下图:

  1. 进入过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服务器);
server 192.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;upstream site { ip_hash;  #server 192.168.1.106:10002 ;#server 115.29.54.31:10002 max_fails=3 fail_timeout=10s;server 192.168.1.117:9203 max_fails=3 fail_timeout=10s;server 192.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_pass http://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可以在nginx文件下生成一个后缀名为.bat的文件,我写的nginx启动程序代码如下:
@echo off

rem 当前bat的作用
echo ==================begin========================

cls

SET NGINX_PATH=%~d0

SET NGINX_DIR=%~dp0

color 0a

TITLE Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com)

CLS

ECHO.

ECHO. * * Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com) *

ECHO. * update by 鑫哥 2013-03-13 *

ECHO.

:MENU

ECHO. * nginx 进程list *

tasklist|findstr /i “nginx.exe”

ECHO.

ECHO.  [1] 启动Nginx  ECHO.  [2] 关闭Nginx  ECHO.  [3] 重启Nginx  ECHO.  [4] 退 出 

ECHO.

ECHO.请输入选择项目的序号:

set /p ID=

IF "%id%"=="1" GOTO start IF "%id%"=="2" GOTO stop IF "%id%"=="3" GOTO restart IF "%id%"=="4" EXIT

PAUSE

:start

call :startNginxGOTO MENU

:stop

call :shutdownNginxGOTO MENU

:restart

call :shutdownNginxcall :startNginxGOTO MENU

:shutdownNginx

ECHO. ECHO.关闭Nginx...... taskkill /F /IM nginx.exe > nulECHO.OK,关闭所有nginx 进程goto :eof

:startNginx

ECHO. ECHO.启动Nginx...... IF NOT EXIST "%NGINX_DIR%nginx.exe" ECHO "%NGINX_DIR%nginx.exe"不存在 %NGINX_PATH% cd "%NGINX_DIR%" IF EXIST "%NGINX_DIR%nginx.exe" (    echo "start '' nginx.exe"    start "" nginx.exe)ECHO.OKgoto :eof

服务器每次重启后都要重启nginx服务,重启的步骤是:
1. 进入/nginx文件夹下,即可看到nginx.bat运行程序;点击启动

  1. 启动以后可以看到提示界面

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

相关帮助文档:

Nginx配置文件详解

[Nginx配置文件nginx.conf中文详解](http://www.ha97.com/5194.html)

如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查

Nginx 负载均衡模块 ngx_http_upstream_module 详述

0 0
原创粉丝点击