Nginx 1.6.1 负载均衡器配置并设置windows服务

一、安装nginx(windows版) 

1、进入nginx 官网下载安装包:http://nginx.org/en/download.html

2、有很多版本,下载稳定的版本nginx 1.6.1 ,弹出下载页面,

3、选择下载目录,点击下载。

4、解压完后解压,双击nginx.exe:

5、打开控制台(cmd),进入Nginx安装包根路径;

 6、输入命令nginx -t检查nginx是否配置成功;

7、输入命令start nginx启动nginx服务; 

8、在浏览器中访问localhost,便可看到nginx成功安装并运行的页面。(默认监听端口80)

 

 二、Nginx常用命令

1、检查配置文件是否配置成功,在启动服务之前执行;

nginx -t

     2、启动运行nginx服务;

start nginx

 3、等任务完成之后,关闭Nginx服务;

nginx -s quit

4、强制关闭Nginx服务;

nginx -s stop

    5、重启Nginx服务,一般是修改了配置文件之后,使修改生效;

nginx -s reload

三、配置文件讲解

    Nginx所有的设置都在根目录conf文件夹下的nginx.conf文件中。

    在网上看到,不要以记事本来打开conf配置文件,会发生转码问题,破坏配置文件的内容,从而导致Nginx启动不起来。我用Notepad++打开修改的,没有问题。

    1、worker_processes:设定Nginx工作时的进程数,设置值小于cpu的内核数;

worker_processes  1;

2、events:

events {
    # 设置nginx的最大连接数
    worker_connections  1024;
}

 3、keepalive_timeout:http连接超时时间,默认是65s。当需要上传大文件时,需要适当设置大一点,避免文件上传过程中断开连接,导致文件上传失败;

keepalive_timeout  5000; 

 4、gzip:对网络传输的数据内容进行压缩;

gzip  on;

  5、upstream:服务器的集群。可以设定多个不同名字的集群,以用于不同的server。这里可以设定nginx的工作策略,这里是使用默认的轮询;

# 服务器的集群  
upstream  localhost {  #服务器集群名字
    server    192.168.0.61:8801;
    server    192.168.0.62:8802;
    server    192.168.0.63:8803 down;
    server    192.168.0.64:8804 backup;
}

注:upstream中的每个server都可以设定以下状态:

weight-设定该服务的访问权重,权重越大被访问的几率越大,相应的压力就越大;
down- 表示此server不参与负载;
max_fails -允许请求失败的最大次数;当超过后返回proxy_next_upstream中定义的的错误;
fail_timeout:请求失败后暂停访问的时限;
backup:备用server;当其他机器全忙或宕机时,才会使用。
6、server:代理服务器,可以设定多个代理服务器(每一个server就是一个虚拟服务器);请求进来之后由server的server_name决定该请求访问哪一个服务;

server {
    # 设置监听端口
    listen      9876;
    server_name  localhost;
    
    # 设置url编码格式,解决参数中文乱码问题
    charset utf-8;
		
    location / {
        proxy_pass http://localhost;  
        proxy_redirect default;  

}

   7、location: 配置该服务的访问规则,同一个server下可以配置多个location;

# 对静态资源进行映射
location ^~ /public/images/ {  
    alias D:/nginx-1.10.1/html/public/images/;
}
 
# 对"/"启用负载均衡
location / {
    proxy_pass http://localhost/;
    proxy_redirect default;
}

完整的配置信息


#user  nobody;
#设定Nginx工作时的进程数,设置值小于cpu的内核数
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    #设置nginx的最大连接数
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    server_names_hash_bucket_size 64;
    #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的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
    #upstream  每个子域名都需要配置一个  注意端口和权重

upstream 192.168.0.66 {
server 192.168.0.66:8002 weight=1;
server 192.168.0.66:8003 weight=2;
}
#server  的建立,每个子域名  都需要一个 server   servername,proxy_pass 需要配置

   
server {
    #监听端口号
	listen       80;
	#主机名
        server_name  192.168.0.66;
	#强制跳转到 Https
	#rewrite ^(.*)$ https://$host$1 permanent;
	#字符集
        charset utf-8;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
	    #输入需要负载的子域名地址,然后配置 upstream 对应的服务器
	    proxy_pass http://192.168.0.66;
	#设置主机头和客户端真是地址,以便服务器获取客户真实IP
		proxy_set_header	 Host			 $host;
		proxy_set_header	 X-Real-IP		 $remote_addr;
		proxy_set_header	 X-Forwarded-For	 $proxy_add_x_forwarded_for;
        }
}
 
    # 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;
    #    }
    #}

    

}

四、将Nginx注册为windows系统服务可随机启动

1. 在项目主页内找到winsw的下载页面(我用的是最新2.0.2版本,你可以下载最新的)

http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.18/winsw-1.18-bin.exe

http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.19/winsw-1.19-bin.exe

下载的文件:winsw-1.19-bin.exe

2. 在nginx项目页面下载nginx windows版本

http://nginx.org

把nginx压缩包解压放到指定目录,例如我放的是c盘根目录。特别强调路径不要带空格的,否则会启动失败。

nginx安装目录是:C:\nginx-1.6.1\

3. 将winsw-1.9-bin.exe复制到nginx目录:C:\nginx-1.6.1\

,并将其改成nginx-service.exe 

4. 新建一个xml文件nginx-service.xml,名称一定要与上面的.exe上的文件名一致的哦。

<?xml version="1.0" encoding="UTF-8" ?>
<service>
    <id>nginx</id>
    <name>nginx</name>
    <description>High Performance Nginx Service</description>
    <logpath>C:\nginx-1.16.1\logs</logpath>
    <log mode="roll-by-size">
        <sizeThreshold>10240</sizeThreshold>
        <keepFiles>8</keepFiles>
    </log>
    <executable>C:\nginx-1.16.1\nginx.exe</executable>
    <startarguments>-p C:\nginx-1.16.1</startarguments>
    <stopexecutable>C:\nginx-1.16.1\nginx.exe</stopexecutable>
    <stoparguments>-p C:\nginx-1.16.1 -s stop</stoparguments>
</service>

5、在nginx目录下新增文件nginx-service.exe.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727" />
        <supportedRuntime version="v4.0" />
    </startup>
    <runtime>
        <generatePublisherEvidence enabled="false" />
    </runtime>
</configuration>

文件内容如下:

 

 6、启用windows自带的.Net Framework服务。

 

7. 运行Windows cmd命令,进入nginx目录:运行nginx-service.exe install将其注册为windws系统服务。当配置错误(就是系统服务中有了但是启动不了)或者是要卸载它的时候运行:nginx-service.exe uninstall

在运行Windows cmd命令,输入services.msc,就可以在系统服务中看到nginx服务,右击启动就可以了,访问http://localhost:8001出现nginx页面,安装成功。 因为我这台电脑80端口被占用了,然后就使用了8001端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值