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 ...
随机推荐
- C#中关于as关键字的使用
我们在实际编码中有时会用到as关键字来将对象转换为指定类型,与is类型不同的是,is关键字是用于检查对象是否与给定类型兼容,如果兼容就返回true,如果不兼容就返回false.而as关键字会直接进行类 ...
- Ubuntu 16.04 python和OpenCV安装
Ubuntu 16.04 python和OpenCV安装:最进在做深度学习和计算机视觉的有关内容,因此要在python中用到opencv.我的电脑装的是Ubuntu 16.04,python 2.7和 ...
- 90 % Java 程序员被误导的一个性能优化策略
我们经常看到一些 Java 性能优化的书或者理念,说不要在循环内定义变量,这样会占用过多的内存影响性能,而要在循环外面定义.接触 Java 这么久以来,相信很多 Java 程序员都被这种代码性能优化策 ...
- python --第三方登录--微博
理解第三方登录的流程: 用户向本地应用商城发起请求,我要用微博进行登录 我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面) 用户在该界面点击输入用户名密码之后,点击授权. 微博有个 ...
- 【转】浮点数与IEEE 754
http://www.cnblogs.com/kingwolfofsky/archive/2011/07/21/2112299.html 浮点数 1. 什么是浮点数 在计算机系统的发展过程中,曾经 ...
- RobotFramework测试问题二:各种元素不能定位问题
各种元素不能定位问题 一.元素定位 A. Click Element + xpath B. Click Element + contains C. Execute Javascript + getEl ...
- JQ获取CKeditor的值
var editor = CKEDITOR.replace("content"); editor.setData(""); alert(CKEDITOR.ins ...
- Docker上运行MySQL服务
1.搜索MySQL镜像 $ docker search mysql INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.i ...
- Sherman-Morrison公式及其应用
Sherman-Morrison公式 Sherman-Morrison公式以 Jack Sherman 和 Winifred J. Morrison命名,在线性代数中,是求解逆矩阵的一种方法.本篇 ...
- ajax 跨域----好用的解决方案
一.前言 跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了! 但是感觉还是差了点什么,于是现在重新梳理了一下.个人见识有限,如有差错,请多多见谅 二.前言 关于跨 ...