windows下使用nginx
本文介绍如何在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的更多相关文章
- windows 下使用Nginx替代apache作为服务器
说实话, 在windows下使用Nginx 着实有点不太方便, 但因项目需求, 又不想换系统(虽然可以搞个虚拟机玩), 只能用Nginx了 好了, 不多说了. 开始... 首先我用的是xampp包(A ...
- windows下安装nginx
说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...
- windows 下配置 Nginx 常见问题(转)
windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...
- Windows下配置Nginx
一.今天是2017年1月18日.揣着一种也许叫做冲动的心情,决定以后每天都记录和回顾新涉及的技术,巩固已学到的知识,坚持. 二.回归到今天的技术主题,因为之前对于[反向代理]这种技术充满了好奇,借此机 ...
- Windows 下使用nginx命令启动
http://wanganwu.blog.163.com/blog/static/7788722012322111417966/ Windows下Nginx的启动.停止等命令 在Windows下使用N ...
- windows下搭建nginx+php开发环境
windows下搭建nginx+php开发环境 1.前言 windows下大多我们都是下载使用集成环境,但是本地已经存在一个集成环境,但不适合项目的需求.因此准备再自己搭建一个环境. 2.准备 工具: ...
- Windows下控制Nginx的状态
Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...
- 在CentOS/Windows下配置Nginx(以及踩坑)
在CentOS/Windows下配置Nginx(以及踩坑) 1. 序言 因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来. 2. CentOS ...
- Windows下使用Nginx+Tomact做负载均衡
前言 今天,王子与大家闲谈一下如何在Windows下使用Nginx+Tomcat做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦. 另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后 ...
随机推荐
- Mac环境下Android Studio配置Git以及最基本使用
Git是分布式版本管理工具,现在使用十分广泛,相对于SVN,GIT的使用更加方便,在离线环境下,仍然可以进行版本控制工作.且速度十分快.在Windows下,先需要自行安装Git程序,网址git-scm ...
- button出现投影
style="?android:attr/borderlessButtonStyle" xml中加上这属性
- 谈谈Java基础数据类型
Java的基本数据类型 类型 意义 取值 boolean 布尔值 true或false byte 8位有符号整型 -128~127 short 16位有符号整型 -pow(2,15)~pow(2,15 ...
- Unity3d 相关文档
Unity3D研究院之处理摄像机跟随避免相机穿墙拉近或透明的方法 http://www.apkbus.com/android-498-1.html
- linux进程通信全面解析
进程IPC 的 7种方式 linux下 进程通讯IPC的方式主要有以下7种: 1.文件 2.共享内存 3.信号 4.管道 5.套接字 6.消息列队 7.信号量 以下正文 中 一一 分析下: 1 ...
- 行为驱动开发BDD概要
BDD脱胎于TDD 行为驱动开发(Behavior-Driven Development,简称BDD),是在测试驱动开发(Test-Driven Development,TDD)基础上发展而来的一种软 ...
- webpack新版本4.12应用九(配置文件之入口和上下文(entry and context))
entry 对象是用于 webpack 查找启动并构建 bundle.其上下文是入口文件所处的目录的绝对路径的字符串. context string 基础目录,绝对路径,用于从配置中解析入口起点(en ...
- 提升Apache网站访问速度的优化方法
Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 在Apache服务器上怎样优化才能提高 ...
- Use the dkms from EPEL when install CUDA Toolkits on CentOS
###Use the dkms from EPEL. yum install epel-release yum install dkms # download the rpm from the NVi ...
- 【转】windows下mysql5.1忘记root密码解决方法
步骤如下:1.停止mysql服务(以管理员身份,在cmd命令行下运行) net stop mysql D:\>net stop mysql MySQL 服务正在停止. MySQL 服务已成功停止 ...