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做负载均衡的完整步骤,小伙伴们可以试着自己动手实践一下哦. 另外说明一点,本篇文章是纯实操文章,不涉及太多原理的解读,后 ...
随机推荐
- 【Demo】CSS图像拼合技术
图像拼合 图像拼合 - 简单实例 <style> img.home { width: 46px; height: 44px; background: url(/images/img_nav ...
- Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib
原因是操作系统的文件与手机需要的不同. 解决办法是将iOS DeviceSupport里当前手机版本的Symbols的libresolv.9.dylib文件,代替编译失败项目的Build Phases ...
- OpenCV几种边缘检测的简例
简单记录一下OpenCV的几种边缘检测函数的用法. 边缘检测算法 以Sobel边缘检测算法为例. Sobel卷积核模板为: 偏导公式为: Gx(i,j)=[f(i+1,j−1)+2f(i+1,j)+f ...
- 音悦台mv视频下载
需要获取的页面: 参考了此处,做了修改,代码如下: #coding:utf-8 import urllib2 import urllib import re import sys import os ...
- SurfaceView基本使用--动态画正弦函数
package com.zzw.TestSurfaceView; import android.content.Context; import android.graphics.Canvas; imp ...
- Week2《Java程序设计》第二周学习总结
Week02-Java学习笔记2 1. 本周学习总结 本周学习了java的基本语法与类库,其中介绍了基本数据类型和引用类型,介绍了String类,String对象的拼接以及String的一些常用方法: ...
- 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明
<foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...
- MySqlDBHelper数据库连接
这里是本人在工作中用到,希望给大家帮助 public class MySqlDBHelper { //获取一个记录器 private static readonly log4net.ILog log ...
- 3.了解linux系统以及搭建学习环境
目录: 1.linux的前世今生. 2.企业如何选择linux系统? 3.如何在虚拟机上安装linux系统?搭建学习环境. 1.linux的前世今生. 1).起源:先是贝尔实验室的Unix系统,因为各 ...
- (十七)js bom/dom
window 是所有BOM中所有对象的核心. window 的属性 window.self代表自己本身,相当于window. eg: console.log(window.self === windo ...