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做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦. 另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后 ...
随机推荐
- poj 1787 背包+记录路径
http://poj.org/problem?id=1787 Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Subm ...
- 【51nod-1605】棋盘问题
上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在玩一个游戏,每次寻找边长为x的正方形,其中每个格子必须为黑色,然后将这些格子染白. 如果谁不能操作了,那么那个人就输了. ...
- 【SQL查询】按照多个字段进行排序_order by
注: 1. 当前面的排序存在重复的项,后面的排序才会起作用. [示例1]:前面的排序不存在重复的项 [示例2]:前面的排序存在重复的项
- openlayers自定义图层控制的实现
好久没写博文了,今天出来冒个泡. 最近一直在考虑一件事情,那就是openlayers中自定义wms的图层控制.用过openlayers的人都知道,在openlayers中有自带的图层控制的控件,调用方 ...
- 5.linux目录结构介绍
目录: 1.linux系统的目录结构特点?为何会形成这样的目录结构? 2.基本目录内容详解! 3.重要目录详解! 1.linux系统的目录结构特点? A.Linux系统的目录结构是一棵倒挂的大树,”/ ...
- mono developer 无法启动 可以试试如下插件包.
http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.22.msi 我以前装的旧版unity 再装了新的版本以后 mono ...
- Zookeeper在Dubbo中的作用及Zk集群的选举原理
转自 : https://blog.csdn.net/zh15732621679/article/details/80723358
- MarkDown小技巧
MarkDown编辑 MarkDown编辑的时候,可以直接插入HTML的编辑手法. 例如如果想要将一段话中的某一个或者某几个字设为其他颜色,但又不想将这几个字与这段话分割的时候,可以这样 你可以这样将 ...
- 转载:将STM32的标准库编译成lib使用【图文】
from:http://www.cnblogs.com/zyqgold/p/3189719.html 百度上边也有不少关于lib文件的文章,恰巧看到该博文,感觉该博文的条理清晰,步骤明确,故复制到这个 ...
- NGINX 配置文件配置url重写
1.项目在根目录: location / { index index.html index.htm index.php l.php; autoindex ...