nginx Windows服务形式运行
背景
现在使用ngnix的人越来越多,nginx的优势劣势网上也很多说明。这里就不探讨nginx优势与劣势,每个工具都有自己优势劣势,没有最好的工具,只有最合适的工具。
如何选择适当的工具,根据项目的需求,情况各方面综合考虑选择适当工具(相当于没说一样),不是盲目的选择。
最怕听到现在什么什么流行,什么性能好。不顾项目情况盲目去选择。扯得有点远了,还是说回nginx。
nginx基本上是在linux下面使用,但是平常开发不可能在linux下面,特别是net。在windows下面使用nginx其实也很方便,好像没有装服务的需要。
用过的都知道,windows下面使用下面两个语句启动,关闭nginx

每次启动执行这个语句,其实也不麻烦,但有时候修改nginx配置,还有先停止再启动,有点机械式,而且不偷懒的程序员不是好的程序员,有没有更好办法,当然是有,不然也没有这篇文章存在一样。就是把nginx做成windows服务的形式,每次自动运行,修改配置后重新启动服务,不需要nginx的时候,停止服务。
准备工具
配置步骤
- 安装nginx (解压缩到指定目录)
- 安装wsw (直接下载就是exe,可以重命名也可以使用原来,为了方便我重新命名为winsw.exe,放到指定目录)
- 新建一个exe名称一样的xml(我这里就是winsw.xml)
<service>
<id>nginx</id>
<name>nginx</name>
<description>This service is nginx.</description>
<logpath>D:\Program Files\winsw\logs</logpath>
<executable>D:\Program Files (x86)\nginx\nginx.exe</executable>
<startargument>-pD:\Program Files (x86)\nginx</startargument>
<stopexecutable>D:\Program Files (x86)\nginx\nginx.exe</stopexecutable>
<stopargument>-pD:\Program Files (x86)\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>上面配置根据自己情况改一下。应该都好明白,这里不说明了。网上关于这个wsw的配置说明都一样,但是运行不成功,后来查看官网和源码才发现,新版本一些参数不一样了。这个wsw是开源的,有兴趣可以下载看看。
- 以管理员身份打开一个cmd,然后打开wsw的目录
- 执行命令winsw.exe install
然后去服务里面就可以看到多了一个nginx的服务

- 启动服务,在浏览器输入localhost,看到下面界面就说明服务安装成功,nginx运行成功

nginx简单配置
- IIS新建两个站点
里面也只有一个简单的index页面
- 修改nginx配置文件,修改两个地方
upstream nginx {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}location / {
proxy_pass http://nginx/;
} - 浏览器访问localhost
可以看到nginx交替访问两个站点,这只是最基本的nginx功能,nginx还有很多高级功能,有时间弄清楚,再写一遍nginx的使用配置。
nginx Windows服务形式运行的更多相关文章
- [转帖]以Windows服务方式运行ASP.NET Core程序
以Windows服务方式运行ASP.NET Core程序 原作者blog: https://www.cnblogs.com/guogangj/p/9198031.htmlaspnet的blog 需要持 ...
- 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式
连表查询都用Left Join吧 最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...
- 安装redis以windows服务形式
安装redis以windows服务形式 安装redis以windows服务形式 redis windows windows 服务 以前跑redis,老是要开一个命令行窗口,一旦关闭,redis服务就挂 ...
- 以Windows服务方式运行.NET Core程序
在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Windows服务运行的方法,而今,我们又遇到了新的问题,那就是: ...
- [转帖]以Windows服务方式运行.NET Core程序
以Windows服务方式运行.NET Core程序 原作者blog:https://www.cnblogs.com/guogangj/p/10093102.html 里面使用了NSSM 工具 但是自己 ...
- mpush 服务端配置 for windows 服务自动运行
mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例: http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...
- 安装Nginx作为Windows服务自启动运行
如果Nginx每次使用都需要手动启动确实很麻烦,所以最好将其设置为Windows系统服务,开机自启动就行了. 1.下载并修改运行环境支持程序 1).下载地址:http://ng-srvinst.att ...
- 以Windows服务方式运行ASP.NET Core程序
我们对ASP.NET Core的使用已经进行了相当一段时间了,大多数时候,我们的Web程序都是发布到Linux主机上的,当然了,偶尔也有需求要发布到Windows主机上,这样问题就来了,难道直接以控制 ...
- 以Windows服务方式运行ASP.NET Core程序【转载】
我们对ASP.NET Core的使用已经进行了相当一段时间了,大多数时候,我们的Web程序都是发布到Linux主机上的,当然了,偶尔也有需求要发布到Windows主机上,这样问题就来了,难道直接以控制 ...
随机推荐
- js鼠标经过文字滚动,移开还原
不说别的,直接贴代码. <div class="kj-scroll" id="countrylist0" onmouseover="wPAa = ...
- Android笔记:如何在Fragment里使用findViewById()方法?
在Activity中,可以直接用findViewById(int id),通过xml的id来找到对应的View. 查找官方的api,具体如下: https://developer.android.go ...
- Textrank算法介绍
先说一下自动文摘的方法.自动文摘(Automatic Summarization)的方法主要有两种:Extraction和Abstraction.其中Extraction是抽取式自动文摘方法,通过提取 ...
- jQuery Mobile 图标
jQuery 图标 如需在 jQuery Mobile 中向按钮添加图标,请使用 data-icon 属性: <a href="#anylink" data-role=&qu ...
- hibernate报错Unknown integral data type for ids : java.lang.String
package com.model; // Generated 2016-10-27 14:02:17 by Hibernate Tools 4.3.1.Final /** * CmDept gene ...
- Oracle中三种循环(For、While、Loop)
1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...
- python获取路径
#!/usr/bin/env python import os #文件所在路径(模块路径) print __file__,os.path.realpath(__file__),os.path.absp ...
- break continue.
1.break与continue.这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. 2.while循环 //初始条件 while( ...
- Oracle数据库迁移到AWS云的方案
当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本等.很多企业使用云碰到的难题之一是如何将现有的应用迁移到云上,将现有应用的中间件系统.Web系统及其 ...
- 游标的使用之压缩数据库Log文件
declare @databasename nvarchar(100)--定义游标以及赋值 获取所有Online的Database Namedeclare getDataBaseCursor cur ...