windows下Nginx的安装配置与使用
1.nginx的下载
nginx的官网上各版本任意下载 http://nginx.org/en/download.html
2.nginx的常用命令
启动nginx:stsrt nginx
停止nginx:nginx -s stop 或 nginx -s quit (stop快速停止,不会保存相关信息;quit是完整有序的退出,会保存相关信息)
重新载入nginx:nginx -s reload (当配置信息进行修改后,需要重新载入nginx)
查看nginx版本: nginx -v
检查配置文件是否有错误:nginx -t
3.nginx的初级使用
nginx默认监听的端口号是80,命令窗口可以输入netstat -ano,查看所有被使用的端口,发现80被TCP协议占用
D:\nginx\conf nginx文件下有conf文件,修改里面的nginx.conf文件
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
将listen修改为81,就可以通过localhost:81访问nginx
下面来看看nginx.conf各属性代表的含义
server:相当于一个代理服务器,我们可以配置多个
listen:当前代理服务器监听的端口号,多个server需要配置不同的端口号
server_name:表示监听之后需要转到哪里。上面转到的是localhost,就是直接转到nginx文件夹内
localtion :表示匹配的路径,加上/表示所有的请求都会匹配到这里
root:配置root时,就表示请求匹配到这个路径时,会在本文件夹内寻找相应文件
index:当没有指定页面,默认会选择这个文件夹下的文件,可以有多个,并按顺序来查找
下面写一个Demo,将请求转发到我们的tomcat
server{
listen 82;
server_name localhost:8080;
location / {
proxy_pass http://localhost:8080;
}
}
我们写一个代理服务器,当我们访问localhost:82的时候,proxy_pass属性指的是代理服务器会将请求转移到的路径,也就是Tomcat的访问路径,修改完配置文件后输入 nginx -s reload 重新载入nginx
以上就是nginx的一个反向代理的基本概念,nginx监听端口请求,截获后将请求转发给tomcat处理,由tomcat处理请求,处理完成后,tomcat把数据返回给nginx,nginx再把数据发送给客户端。而在实际项目中,html、css、js、img等静态文件,并不像jsp文件需要servlet容器(tomcat)来处理,所以我们可以把静态文件都交给nginx进行缓存
location ~ \.jsp$ {
proxy_pass http://localhost:8080;
}
location ~ \.(html|js|css|png|gif)$ {
root D:/apache-tomcat-7.0.8/webapps/ROOT;
}
配置以上信息后,apache的首页可以显示,但是点击链接的时候无法显示,原因就是链接匹配的html页面不在root目录下而在docs目录下,因此链接无法显示
那么有多台服务器的时候,nginx怎么去使用它们呢?
upstream local_tomcat {
server localhost:8080 weight=1;
server localhost:8081 weight=2;
server localhost:8082 weight=3;
server localhost:8083 down;
}
server{
location / {
proxy_pass http://local_tomcat;
}
}
首先我们定义一组自己本地的服务器,weight表示得到请求的几率,数字越大机会越大,down表示暂时不用该服务器。
配置以上信息后,就完成了基本的分流~