nginx是什么、怎么用、以及用nginx解决实际问题

简单记录一下个人使用心得:前端出现了端口跨域的问题,jsonp、修改cors请求头都尝试了无效,最后用nginx反向代理神奇般的解决了。。。

一、了解nginx

Nginx 是一个高性能的HTTP和反向代理web服务器
在这里插入图片描述
用大白话来描述一下:从上图可以看到http请求到我们的应用服务器中间部署了nginx
,请求不能直接通过真实的地址来访问我们的应用服务器,而是通过nginx配置的地址来访问,这个也是我们常说的反向代理。
例如:没有配置nginx,我可以用地址A来访问。配置之后用地址B来映射地址A。前台请求可以用B来访问,通过我们的nginx真实访问的是A,并且把响应数据带回。

二、nginx基础使用

  1. 安装的教程有很多,这里就不写了。
  2. 安装好之后可以看到基本目录结构:
    client_body_temp
    conf
    fastcgi_temp html
    logs
    proxy_temp
    sbin
    scgi_temp
    uwsgi_temp
    主要用到:
    (1)conf
    用来存放配置文件相关
    (2)html
    用来存放静态文件的默认目录 html、css等
    (3)sbin
    nginx的主程序
    3.配置文件
    (1)http块:全局配置
    worker_processes
    worker_processes 1; 默认为1,表示开启一个业务进程
    worker_connections
    worker_connections 1024; 单个业务进程可接受连接数
    include mime.types;
    include mime.types; 引入http mime类型
    default_type application/octet-stream;
    default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。
    sendfile on;
    sendfile on; 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。
    未开启sendfile
    keepalive_timeout 65;
    keepalive_timeout 65;
    (2)server块 虚拟机配置
server {
listen 80; 监听端口号
server_name localhost; 主机名
location / { 匹配路径
proxy_pass http://xxx.com/;
}
}

注意:
listen、server_name 是nginx的监听端口和地址
location中的proxy_pass 是被代理的地址
通过nginx的地址来映射proxy_pass 的地址

三、解决实际问题

1.放静态资源
静态资源可以放到任意一个目录下例如static

static:目录url
server {
        listen       8000;
        listen       somename:8080;
        server_name  somename  alias  another.alias;

        location / {
            root   static;
            index  index.html index.htm;
        }
    }

2.负载均衡
(1)轮询
默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。
(2)weight(权重)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream httpd {
server 127.0.0.1:8050 weight=10 down;
server 127.0.0.1:8060 weight=1;
server 127.0.0.1:8060 weight=1 backup;
}
down:表示当前的server暂时不参与负载
weight:默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
(3)ip_hash
根据客户端的ip地址转发同一台服务器,可以保持回话。
l(4)east_conn
最少连接访问
(5)url_hash
根据用户访问的url定向转发请求
(6)fair
根据后端服务器响应时间转发请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值