本文介绍如何在windows下使用nginx

起步

下载安装

下载 http://nginx.org/download/

进入根目录运行
start nginx 如果报错或者无法启动应该是80端口被占用,设置nginx.conf文件将80端口换成其他端口,我换成了8085 访问 http://localhost:8085/,可以看到nginx的欢迎界面

将nginx安装成windows服务

步骤1,下载winsw工具 http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/

步骤2,我下载的winsw是winsw-2.1.2-bin.exe,将其放置于nginx根目录改名为nginxsvc.exe

步骤3,创建nginxsvc.xml置于nginx根目录,写入如下配置(注:国内外网站的配置文件都有问题,写如下配置文件直接跑通)
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>C:\nginx\nginx.exe</executable>
<logpath>C:\nginx\logs</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-pc:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
步骤4,运行 nginxsvc.exe install 安装服务
步骤5,到服务界面启动服务
步骤6,修改服务登录用户,点击服务->属性,将服务登录用户修改为当前电脑用户
如果不这么做,nginx的命令你都没法执行

常用命令

nginx -s stop                           暴力的停止nginx
nginx -s quit 优雅的停止nginx
nginx -s reload 重新加载conf配置
nginx -s reopen 重新打开配置文件
taskkill /f /pid 28544 结束进程
tasklist /fi "imagename eq nginx.exe" 查看nginx进程
nginx -c ./conf/nginx.conf 指定配置文件开启nginx

构建服务

静态服务

进入nginx.conf添加如下配置

server {
listen 10000;
server_name localhost;
location /sjl/ {
root data;
index index.html index.htm;
}
} 此配置告知nginx,当有请求 http://localhost:10000/sjl/ 访问nginx根目录 data/sjl/index.html

代理服务器

server {
listen 10000;
server_name localhost;
location /sjl/ {
root data;
index index.html index.htm;
}
} server {
listen 10001;
root data;
server_name localhost; location / {
proxy_pass http://localhost:10000/sjl/;
}
} 监听 http://localhost:10001 将访问http://localhost:10001代理到http://localhost:10000/sjl/ 也就是说你访问http://localhost:10001实际上是访问http://localhost:10000/sjl/

http配置文件转移

为了配置清晰明朗,在你的nginx.conf的http模块中

http {
...
include selfconf/my.conf;
...
} 在nginx.conf同级目录下创建selfconf/my.conf文件 在my.conf中直接填写server配置即可

负载均衡

负载均衡配置

我没有那么多电脑,所以就用nginx做了多个server的模拟

// 均分请求到下面三个模拟服务器
upstream localhost {
server 127.0.0.1:10001;
server 127.0.0.1:10002;
server 127.0.0.1:10003 backup; // 这个是备用服务器,当前面两个搞不定了,再分配到此处
} server {
listen 10000;
server_name 127.0.0.1;
location / {
proxy_pass http://localhost;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
} // 下面模拟三个服务器
server {
listen 10001;
server_name 127.0.0.1;
location / {
root data/sji/;
index index.html index.htm;
}
} server {
listen 10002;
server_name 127.0.0.1;
location / {
root data/sjl/;
index index.html index.htm;
}
} server {
listen 10003;
server_name 127.0.0.1;
location / {
root data/sjm/;
index index.html index.htm;
}
}

负载均衡方法

第一种:Round Robin,默认方式请求权重均分

    upstream localhost {
server 127.0.0.1:10001 weight=5; // 权重为5
server 127.0.0.1:10002 max_fails=3 fail_timeout=30s; // 设置最大重连次数为3次,和最大不可用时长30s
server 127.0.0.1:10003 backup; // 备用服务器
}
第二种:Least Connections,将请求分配给连接数最少的服务器 upstream localhost {
least_conn;
server 127.0.0.1:10001;
server 127.0.0.1:10002;
server 127.0.0.1:10003 backup;
}
第三种,IP Hash,相同的ip访问都会被分配到同一个服务器 upstream localhost {
ip_hash;
server 127.0.0.1:10001;
server 127.0.0.1:10002;
server 127.0.0.1:10003 down; // 此服务器不参与分配
}
第四种,Generic Hash,可以自定义检测key key相同则负载到同一台服务器上 upstream localhost {
hash $request_uri consistent;
server 127.0.0.1:10001;
server 127.0.0.1:10002;
server 127.0.0.1:10003;
} $request_uri 表示的是http url后边的uri
$args 查询参数
$remote_addr 客户端的IP
$remote_port 客户端的端口
... 类似的还有很多

正式线上的负载均衡配置

// ipAdress 这是你的服务器IP地址

// proxyAdress 这是你的代理服务器IP地址

// 假设你的后台api接口为 ipAdress:9000/test 和 ipAdress:9001/test 可以使用如下方式进行负载均衡

// 通过你的代理服务器 proxyAdress:10000/test 即可负载到上面两个服务器对应的test api

upstream ipAdress {
server ipAdress:9000;
server ipAdress:9001;
} server {
listen 10000; server_name proxyAdress; location /test/ {
proxy_pass http://ipAdress;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

windows下使用nginx的更多相关文章

  1. windows 下使用Nginx替代apache作为服务器

    说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...

  2. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  3. windows 下配置 Nginx 常见问题(转)

    windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...

  4. Windows下配置Nginx

    一.今天是2017年1月18日.揣着一种也许叫做冲动的心情,决定以后每天都记录和回顾新涉及的技术,巩固已学到的知识,坚持. 二.回归到今天的技术主题,因为之前对于[反向代理]这种技术充满了好奇,借此机 ...

  5. Windows 下使用nginx命令启动

    http://wanganwu.blog.163.com/blog/static/7788722012322111417966/ Windows下Nginx的启动.停止等命令 在Windows下使用N ...

  6. windows下搭建nginx+php开发环境

    windows下搭建nginx+php开发环境 1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: ...

  7. Windows下控制Nginx的状态

    Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...

  8. 在CentOS/Windows下配置Nginx(以及踩坑)

    在CentOS/Windows下配置Nginx(以及踩坑) 1. 序言 因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来. 2. CentOS ...

  9. Windows下使用Nginx+Tomact做负载均衡

    前言 今天,王子与大家闲谈一下如何在Windows下使用Nginx+Tomcat做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦. 另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后 ...

随机推荐

  1. 【Demo】CSS图像拼合技术

    图像拼合 图像拼合 - 简单实例 <style> img.home { width: 46px; height: 44px; background: url(/images/img_nav ...

  2. Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib

    原因是操作系统的文件与手机需要的不同. 解决办法是将iOS DeviceSupport里当前手机版本的Symbols的libresolv.9.dylib文件,代替编译失败项目的Build Phases ...

  3. OpenCV几种边缘检测的简例

    简单记录一下OpenCV的几种边缘检测函数的用法. 边缘检测算法 以Sobel边缘检测算法为例. Sobel卷积核模板为: 偏导公式为: Gx(i,j)=[f(i+1,j−1)+2f(i+1,j)+f ...

  4. 音悦台mv视频下载

    需要获取的页面: 参考了此处,做了修改,代码如下: #coding:utf-8 import urllib2 import urllib import re import sys import os ...

  5. SurfaceView基本使用--动态画正弦函数

    package com.zzw.TestSurfaceView; import android.content.Context; import android.graphics.Canvas; imp ...

  6. Week2《Java程序设计》第二周学习总结

    Week02-Java学习笔记2 1. 本周学习总结 本周学习了java的基本语法与类库,其中介绍了基本数据类型和引用类型,介绍了String类,String对象的拼接以及String的一些常用方法: ...

  7. 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明

    <foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...

  8. MySqlDBHelper数据库连接

    这里是本人在工作中用到,希望给大家帮助 public class MySqlDBHelper { //获取一个记录器 private static readonly log4net.ILog log ...

  9. 3.了解linux系统以及搭建学习环境

    目录: 1.linux的前世今生. 2.企业如何选择linux系统? 3.如何在虚拟机上安装linux系统?搭建学习环境. 1.linux的前世今生. 1).起源:先是贝尔实验室的Unix系统,因为各 ...

  10. (十七)js bom/dom

    window 是所有BOM中所有对象的核心. window 的属性 window.self代表自己本身,相当于window. eg: console.log(window.self === windo ...