1.nginx 是一款自由的、开源的、高性能HTTP服务器和反向代理服务器
正向代理:代理服务器代表用户访问服务器(VPN)
反向代理:代理服务器就是一个入口,用户访问这个入口,入口把用户转发到实际的服务器
nginx好处:1.负载均衡
2.高并发
3.高可靠
2.windows 下本机nginx
在nginx.conf 中 写localhost 跳转到百度举例
server {
listen 80;
server_name 119.75.213.50:80;//跳转的位置 百度的ip
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://www.baidu.com;
}
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
//下面这两个参数静态写死了
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
2.nginx 过滤:
下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。
- location ~ \.jsp$ {
- proxy_pass http://localhost:8080;
- }
- location ~ \.(html|js|css|png|gif)$ {
- root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;
- }
3.nginx 转发多台
- upstream local_tomcat {
- server localhost:8080;
- }
- server{
- location / {
- proxy_pass http://local_tomcat;
- }
- #......其他省略
- }
我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。
upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。
但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大
- upstream local_tomcat {
- server localhost:8080 weight=1;
- server localhost:9999 weight=5;
- }
3.服务器实例
1.进入/nginx/conf cat nginx.conf
我们看到和本机nginx不同,它配置的比较少,而且include一些conf(详细的配置信息)
include vhost/*.conf;
include /home/q/www/nginx-new/*.conf;
2.进入/home/q/www/nginx-new/* ,我们可以看到详细的配置文件
当用户的请求打到ng服务器上时,ng立刻通过$prefix判断请求的机器,location再匹配地址请求,再通过proxy_pass转到upstream,从中获取uri的端口号 ,最后转到后台处理的那台服务器上
3.location:
location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ]
}
以=开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
顺序 no优先级:
(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)