nginx 安装:
1、 ./configure
如果报错 error: C compiler cc is not found
如果没有安装就安装:yum install –y gcc
如果还报错看看是不是安装: yum install –y zlib zlib-devel
2、 安装
make
3、 make install
4、 安装完后可以查看到目录
5、 启动 nginx
进入 sbin 执行命令启动脚步
有以上提示说明 安装成功!
如果有修改配置执行命令: systemctl reload nginx 生效
查看ngix 状态 systemctl status nginx
nginx 的目录在:/usr/local/nginx/conf
http 是高级的网络协议,在TCP 协议之上。
tcp 协议是基础协议。
http 协议在数据传输过程中有预定,数据根据约定停止或继续传输。是有交互过程。
一个主机可以绑定多个域名,每个域名进入到不同的目录资源。
- 通过nginx 配置反向代理
关键参数 proxy_pass
...
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://www.baidu.com # 反向代理参数,填写代理目标地址。如果不填www 可能会出现 地址栏地址变成目标地址。一般情况是代理地址。
root html;
index index.html index.htm;
}
...
2.负载均衡
需要添加 upstream 参数:
...
upstream httpdls{ #负载的地址 默认轮询策略
server 192.168.11.1 weight=8 down ; # weight 是权重 数值大表示请求的概率也越大。 down 表示下线,不作为负载
server 192.168.11.1 weight=6 backup;# backup 表示备用,只有其他机器都挂了,才会启用这台机器
server 192.168.11.1 weight=4;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
proxy_pass http://httpdls; #反向代理一个路由组地址
location / { # / 优先级最低
root html;
index index.html index.htm;
}
...
3, 负载均衡参数
如果不要参数 默认就是轮询机制。
weight 权重
down 下线
backup 备份机
轮询策略的弊端 session 会话无法保持
负载均衡其他的策略:
ip_hash 通过客户端的ip地址转发同一台服务器 来保持session 会话一致。但是ip 一改就不行了。
least_conn 最少连接访问
url_hash 因为hash 值会根据URL的变动而变动就会不能指定到同一台机器,无法保持会话。根据用户访问的url 定向转发请求
fair 根据后台服务响应时间转发请求
当你的应用是需要状态保存到session 中就要考虑session 一致问题。如果使用了无状态就不用考虑了,比如使用token 来认证,在轮询机制就不需要会话保持了。
4,ngix 反向代理静态资源。
一个项目会有很多的静态资源比如css ,js ,html 这些资源可以放到nginx html 目录下。并且通过nginx 配置来实现反向代理访问。
location /js{ # /js 比 / 的优先级高
root html;
index index.html index,htm;
}
location /img{
root html;
index index.html index,htm;
}
location /css{
root html;
index index.html index,htm;
}
正则方式匹配:
location ~*/(css|img|js){
root html;
index index.html index,htm;
}
配置完后就会直接访问nginx 的前端资源。
静态资源越往前放性能越好,如果使用了nginx 就可直接在nginx 返回静态资源不需要往后调用再返回到nginx.这样会开销大一点。
现在的tomcat 的性能与nginx 来比虽然比nginx 差但是相差不了太大。比较tomcat 升级了很多。
URLrewrite 可以通过代理,来隐藏地址栏的地址。
nginx 功能:
反向代理
负载均衡
静动分离
地址隐藏
所以叫网关服务器。
防盗链: 再次访问添加 referer
5,防盗链配置。
我的场景: 图片资源是在单独的一台服务器。 应用服务器页面通过链接方式访问图片加载图片。
如果图片的地址被拷贝到其他电脑也就会被访问。为了解决这个问题做一个防盗链配置,但是这个只能防一般的用户,一些爬虫的人通过一些配置还是可以欺骗服务器,对资源进行访问。
1,首先安装一台nginx 服务器用来反向代理应用服务器地址。
图片链接的地址也用nginx 的地址。
2,nginx 配置如下;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://192.168.200.104:5001; #系统应用地址
root html;
index index.html index.htm;
}
location ~*(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ {
proxy_pass http://192.168.200.104:5000; #文件图片服务器地址
valid_referers 192.168.200.108; #nginx 服务器的地址
if ($invalid_referer) { #如果图片链接不是本站的就报403
return 403;
}
root html;
index index.html index.htm;
}