java高级进修之nginx
1、 在Nginx中解决跨域问题
在nginx中再添加一个反向代理来实现:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /apis {
rewrite ^.+apis/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:8080;
}}
新添加的一个反向代理 /apis,再此之前一个访问是这样的localhost:8080/api/user/getInfo,然后由于跨域是无法访问的,这个时候在config配置文件中配置上述信息完成之后,此时的访问地址要变成这样:localhost:8080/apis/api/user/getInfo
2、在Nginx中配置静态资源防盗链
<img src="http://lwh.nginx.com:89/imooc/img/face1.png"/>
那么它默认是可以访问这张图片的,但是从lwh.nginx.com网站角度来看,这是一种偷盗行为,不想让外站访问这个图片,
// 这边进行防盗链配置,只允许来自*.nginx.com的请求访问下面资源 // 这边配置完之后,外界就无法通过http://lwh.nginx.com:89/img/face1.png访问了
server{
valid_referers *.nginx.com;
if ($invalid_referer) { return 404; }
}
3、使用nginx搭建多台tomcat服务器 实现负载均衡
修改nginx.conf文件中配置. upstream模块就是用来做反向代理,将请求转发到真实的服务器去处理
a) 需要在本地配置hosts映射, 192.168.1.172 www.tomcats.com
b) 配置成功之后可以在浏览器访问www.tomcats.com,请求被80端口监听到之后,被location匹配到之后,就会走代理 到http://tomcats这个url,这个url对应上面配置的upstream配置,会使用下面三台tomcat的其中一台响应请求.
c) server 192.168.1.173:8080 weight=2;可以这样指定该server处理请求的权重
d) 配置使用ip hash或者访问url的hash或者最少连接数,实现负载均衡
upstream tomcats {
ip_hash; hash
$request_uri; least_conn;
server 192.168.1.173:8080;
server 192.168.1.190:8080;
}
4、使用JMeter测试单节点与集群并发异常率
参考:https://blog.csdn.net/liaomin416100569/article/details/79854669
5、 使用 keepalived提高吞吐量
所谓吞吐量,就是服务器压力问题,所以呢,吞吐量是越高越好;
keepalived: 设置长连接处理的数量
proxy_http_version:设置长连接http版本为1.1
proxy_set_header:清除connection header 信息
upstream tomcats {
# server 192.168.1.173:8080 max_fails=2 fail_timeout=1s;
server 192.168.1.190:8080;
# server 192.168.1.174:8080 weight=1;
# server 192.168.1.175:8080 weight=1;
keepalive 32;
}
server {
listen 80;
server_name www.tomcats.com;
location / {
proxy_pass http://tomcats;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
6、负载均衡原理剖析 - ip_hash - url hash 与 least_conn
参考:https://blog.csdn.net/xqhys/article/details/81788358
7、 Nginx控制浏览器缓存
配置信息:
知识写了location
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
参考:https://blog.csdn.net/xqhys/article/details/81788358
8、Nginx反向代理缓存(不是很好 ,还不如使用redis)
参考:https://blog.csdn.net/li12412414/article/details/80947859
9、使用Nginx配置SSL证书提供HTTPS访问(已经有介绍)