nginx的应用(window环境下)
nginx(背景)
nginx是一个高性能的HTTP服务器,以前我经常在linux系统中配置,主要做反向代理和负载均衡,最近根据业务需要,需要在window中配置反向和负载,下面就介绍一下nginx的安装与使用
nginx介绍
nginx的下载和安装
- 下载:http://nginx.org/en/download.html
- 点进去选择版本下载即可:如图
- 下载:http://nginx.org/en/download.html

下载解压:

进入nginx文件夹,双击nginx.exe即可简单启动【命令在最后会贴出来】
双击后黑窗口闪退,可以在任务管理器中查看nginx进程

然后在浏览器输入localhost

nginx的简单启动已经测试通过
注意:根据不同的系统可能会出现80端口被占用的情况,eg,在win10下,80端口可能被IIS程序占用,只需要改nginx的默认端口就行了
nginx的反向代理
反向代理:是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理:只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中
图解反向代理和正向代理[补充]
正向代理类似一个跳板机,通过跳板机去访问外部资源

正向代理的用处:
(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理:

反向代理的好处:
保证内网的安全,负载均衡
nginx的反向代理配置
上面已经简单介绍反向代理与正向代理的区别,这样有助于大家理解反向代理的好处,下面就具体介绍一下nginx反向代理的配置
在介绍反向代理之前先给大家说一下动静分离的问题:
动静分离的处理也是nginx的一个特点,把静态文件交给nginx来处理,可以增加系统的性能,把大批量的静态文件以nginx的方式去加载,然后去访问,不用在系统请求中获得,减少与系统交互次数,这也是系统优化的一种方式:
配置文件如下:nginx.conf

然后重启nginx nginx -s reload即可 验证如下

上面这是配置动静分离的步骤,这也是反向代理的一种特殊情况,下面我来配置一下关于tomcat的反向代理
反向代理的配置文件如下:

验证如下:

到这,单个server下的配置反向代理已经基本完成,多个server块下的配置与此类似,在此不在多放截图,有兴趣的可以自己手动配置一下进行验证
nginx的负载均衡
nginx的负载均衡是nginx的一个亮点,也是核心点,nginx的高并发,服务器的合理请求划分都是通过负载来直接或者间接实现的,下面我介绍集中负载均衡的实现以及适用场景
负载均衡:把原先一台服务器的请求分发到不同服务器,以实现服务器减压的目的。(个人理解)
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性(百度)
负载均衡的分类:软件负载均衡和硬件负载均衡 软件主要包括(nginx,lvs,netscaler) 硬件主要包括F5
下面我简单配置一下负载均衡的实现:需要至少两台tomcat服务器进行模拟。

关于负载均衡的几种方式参考 http://www.cnblogs.com/huhongy/p/7300118.html
关于nginx的命令,主要有
有dos命令进如nginx的文件夹下
start nginx 启动nginx 在任务管理器中查看
nginx -s reload 重新加载配置文件使其生效
nginx -s stop 关闭 任务管理器中kill
nginx -s quit 关闭 任务管理器中不kill
其他命令自己百度
补充:
nginx一些常见问题: root和alias的对比区别:
location /h2 {
alias d:/newfiber/;
index index.php index.html index.htm;
autoindex on;
}
location /maven {
root d:/newfiber;
index index.php index.html index.htm;
autoindex on;
}
注意:>alias 路径后面必须有 / root 可加可不加
> alias 访问的就是alias的指定文件(夹)路径
root访问的是组合路径 路径+ uri
eg:
alias : d:/newfiber/;
root : d:/newfiber/maven
2 proxy_pass配置说明 主要看proxy_pass http://localhost:8888 | http://localhost:8888/ 最后是否有 /
# 不带 / location /gitbucket
# proxy_pass http://localhost:8888; ---------> location 的 /gitbucket 作为一级目录
# 带 / localtion /gitbucket
# proxy_pass http://localhost:8888/; --------->location 的 /gitbucket 不作为一级目录
location /gitbucket {
proxy_pass http://localhost:8888/gitbucket/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
启动脚本: 生成bat文件放入到nginx的安装目录下
https://blog-static.cnblogs.com/files/huhongy/nginx%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC.bak.js
@echo off
rem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程
nginx.exe -s stop rem 测试配置文件语法正确性
nginx.exe -t -c conf/nginx.conf rem 显示版本信息
nginx.exe -v rem 按照指定配置去启动nginx
nginx.exe -c conf/nginx.conf
nginx的应用(window环境下)的更多相关文章
- window环境下将solr6.3部署到tomcat中
1.我下载的solr是6.3版本的,需要jdk1.8及以上,tomcat8 JDK1.8的下载地址:http://www.Oracle.com/technetwork/Java/javase/down ...
- window环境下glog的安装
window环境下glog的安装 分类: c++2014-09-23 14:12 32人阅读 评论(0) 收藏 举报 下载后解压,利用Visual Studio打开google-glog.sln.生成 ...
- window环境下杀死tomcat
window环境下杀死进程 1.首先查找到占用8080端口的进程号PID是多少(tomcat默认是8080端口,假如你修改了tomcat的监听端口,请输入你的tomcat端口号) netstat -a ...
- window环境下npm install node-sass报错
最近准备想用vue-cli初始化一个项目,需要sass-loader编译: 发现window下npm install node-sass和sass-loader一直报错, window 命令行中提示我 ...
- JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构
一.简介 JAVA中调用LevelDB用于Linux和Window环境下快速存储KV结构 二.依赖 <!-- https://mvnrepository.com/artifact/org.fus ...
- Window环境下配置MySQL 5.6的主从复制
原文:Window环境下配置MySQL 5.6的主从复制 1.环境准备 Windows 7 64位 MySQL 5.6 主库:192.168.103.207 从库:192.168.103.208 2. ...
- 【转】mysql8.0 在window环境下的部署与配置
[转]mysql8.0 在window环境下的部署与配置 今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置 ...
- Window环境下,PHP调用Python脚本
参考 php调用python脚本*** php 调用 python脚本的方法 解决办法:php提供了许多调用其他脚本或程序的方法,比如exec/system/popen/proc_open/passt ...
- nodejs 修改端口号 process.env.PORT(window环境下)
各个环境下,nodejs设置process.env.PORT的值的命令,如下1.linux环境下: PORT= node app.js 使用上面命令每次都需要重新设置,如果想设置一次永久生效,使用下面 ...
- window 环境下jdbc访问启用kerberos的impala
最近,公司生产集群添加kerberos安全认证后,访问集群的任何组件都需要进行认证,这样问题来了,对于impala,未配置kerberos安全认证之前通过impala的jdbc驱动(impala-jd ...
随机推荐
- 使用MultipartFile上传文件
转载地址:https://www.cnblogs.com/lunaticcoder/p/9813483.html(具体的看这个这个大佬的博客) 依赖包: <!-- 上传文件依赖组件 --> ...
- 使用diskpart命令格式化U盘
在安装各种linux系统时,经常要使用SD卡,这里就出了个问题,就是SD卡被linux格式化之后无法在widdows下使用. 并且windows下的格式化按键对它毫无作用.笔者在摸索的过程中,找到了格 ...
- vue中axios的安装和使用
有很多时候你在构建应用时需要访问一个 API 并展示其数据.做这件事的方法有好几种,而使用基于 promise 的 HTTP 客户端 axios 则是其中非常流行的一种. 安装包:如果没有安装cnpm ...
- Python加密与解密
前言 据记载,公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话 保密专利出现.在第二次世界大战期间,德国军方启用“恩尼格玛”密码机, 密码学在战争中起着非常重要的作用. 随着信息化 ...
- sql server 备份与恢复系列七 页面还原
一.概述 当数据库发生损坏,数据库的每个文件都能打开,只是其中的一些页面坏了,这种情况可以借助DBCC CHECKDB进行数据库检查修复.如果要保证数据库不丢失,或修复不好,管理员只能做数据库完整恢复 ...
- Shell脚本 | 安卓应用权限检查
现在 Google Play 对应用权限的管理非常严格,之前公司内有个版本就是因为新增了四个权限导致停灰处理.所以,在每个版本发布之前很有必要检查一下是否有新增权限. 安卓应用请求的所有权限可以通过 ...
- Deep learning with Python 学习笔记(10)
生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...
- 史上最全的 Python 3 类型转换指南
int 支持转换为 int 类型的,仅有 float.str.bytes,其他类型均不支持. float -> int 会去掉小数点及后面的数值,仅保留整数部分. int(-12.94) # - ...
- vi/vim使用
移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列 w:光标以单词向前移动 nw:光标向前 ...
- .11-浅析webpack源码之Storage模块
至此已完成NodeJsInputFileSysten模块的讲解,下一步就是实际实用的模块: compiler.inputFileSystem = new CachedInputFileSystem(n ...