参考:
https://www.cnblogs.com/Miss-mickey/p/6734831.html
https://blog.csdn.net/jackliu16/article/details/79444327
一: 关于正向代理和反向代理: http://www.cnblogs.com/Anker/p/6056540.html 很形象,好玩哈哈
正向代理中,proxy和client同属一个LAN(局域网),对server透明;
反向代理中,proxy和server同属一个LAN,对client透明。
实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。
正向代理的用途:
(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理的作用:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击.
(2)负载均衡,通过反向代理服务器来优化网站的负载.
nginx配置: 遇到之后在多补充
user www www; #指定Nginx Worker进程运行用户以及用户组 可不设置 这样用户都可以启动nginx服务
worker_processes 2; #指定了Nginx要开启的进程数,多核CPU指定和核数一样多的进程数
pid logs/nginx.pid; #指定进程id的存储文件位置
worker_rlimit_nofile 65535; #指定单进程打开文件数,需与系统设定一致
events {
use epoll; #指定nginx工作模式,nginx主要的工作模式有select、poll、kqueue、epoll
#其中select、poll是标准工作模式,kqueue、epoll为高效工作模式,epoll用在Linux系统中,而kqueue用在#BSD系统中
worker_connections 65535;#指定单进程的最大连接数
}
HTTP部分
http {
include mime.types; #指定配置文件所包含的文件
default_type application/octet-stream;
#指定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置PHP环境时,Nginx是不予#解析的,此时,用浏览器访问PHP文件就会出现下载窗口
log_format main '$remote_addr - $remote_user [$time_local] "$request" '#设定日志格式
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';;
client_max_body_size 20m; #设置允许客户端请求的最大的单个文件字节数
client_header_buffer_size 16k;#指定来自客户端请求头的headerbuffer大小,如果自定义了消息头或有更大的cookie,可以在这里增加缓冲大小
large_client_header_buffers 4 32k;#指定客户端请求中较大的消息头的缓存最大数量和大小,4为个数,32k为大小,最大缓存为4个32kb
sendfile on;#开启高效传输模式
tcp_nopush on; # tcp_nopush,tcp_nodelay设置on,防止网络阻塞
tcp_nodelay on;
keepalive_timeout 65; #指定客户端连接保持活动的超时时间
client_header_timeout 10;#说明 指定等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1).仅当在一次read中,没有收到请求头,才会算成超时。如果在超时时间内,client没发送任何东西,nginx返回HTTP状态码408(“Request timed out”) 是从什么时候开始等???
client_body_timeout 10;#说明 该指令设置请求体(request body)的读超时时间。仅当在一次readstep中,没有得到请求体,就会设为超时。超时后,nginx返回HTTP状态码408(“Request timed out”)
send_timeout 10;#指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接。
gzip on; #开启gzip压缩,实时压缩输出数据流
gzip_min_length 1k; #设置允许压缩的页面最小字节数
gzip_buffers 4 16k; #指定内存空间来存贮压缩结果,这里指定4个单位为16k的内存来存储压缩结果,即总大小为64k
gzip_http_version 1.1;#指定识别HTTP协议版本,默认是1.1
gzip_comp_level 2;#指定gzip压缩比,1 压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理最慢,也比较消耗CPU资源
gzip_types text/plain application/x-javascript text/css application/xml;#指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩
gzip_vary on;#该选项开启可以让前端的缓存服务器缓存经过gzip压缩的页面,例如,用Varnish缓存经过Nginx压缩的数据
server_tokens off;#隐藏Nginx版本号
server {
listen 8000; #指定Nginx监端口
server_name localhost;#用来指定IP或者域名
charset utf-8;#指定Nginx默认的字符集,只有utf-8支持中文字符
access_log logs/host.access.log main;#指定访问日志的名称及位置
location / {
index index.html index.htm;#设定默认首页
root /tom/webapps/ROOT;#指定网页根目录
}
location ~ (jsp|\?) { #指定url中包含jsp或者?的全部转发到192.168.0.10的80端口即tomcat处理
proxy_pass http://192.168.0.10:80;
}