nginx来源:css
是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。
此软件BSD-like协议下发行,能够在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操做系统中运行。
nginx 主要功能:
1.处理静态资源
2.反向代理
3.负载均衡
4.访问控制
(一)处理静态资源
假如如今我有一台云服务器,我想在云服务器上挂在一个页面
以下简易页面 index.html
<html> <head> <title>个人服务页面</title> </head> <body> <div>.....</div> </body> </html>
一般两种方法
方法一 在本身的服务器安装个tomcat把页面配置到容器的服务里。便可访问。
具体操做 vi serser.xml
在Engine 节点下添加
<Host name="www.sam.com"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="www.sam.com_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="/home/本身的须要配置的页面" /> </Host>
这是一种方式,固然还有其余的配置方式。能够参考别人
方法二 使用nginx
http {
include mime.types;
default_type application/octet_stream;
sendfile on;
server {
listen 80;
server_name localhost;
location /page {
root /html/login
}
location /page {
alias /html/desplay/
}
}
}
(二)反向代理html
什么是反向代理?nginx
正向代理: 代理端是客户端
反向代理: 代理端是服务端
正向代理影藏的是客户端,反向代理影藏的是服务端。
额外话题 "越域" 与 "跨域"
产生越域的条件:
1. 请求协议不一样 http -> https 或者 https -> http
2. 域名不一样
3. 不一样的端口
反向代理能够很简单的以为由于端口致使的越域问题。具体使用以下:
server {
listen 80;
location /api {
proxy_pass http://localhost:8808;
}
}
此外由于协议的不一样致使的越域问题 本人也不知道怎么解决,至于第二个 域名的不用 这种状况的跨域 须要在请的请求前 加个添加个head 请求头,具体如何操做看我之后的博客谢谢。
(三)负载均衡
当一个网站的访问量足够大的时候,须要增长服务的访问性能,升级服务器性能和增长内存的方式,当用户足够多的时候须要增长主机了。
负载均衡就是 多态服务器组成一个组,完成相同的功能的服务,当用户访问时能够根据每台服务的状态完成不一样的用户请求。
假设 如今我有四台主机 112.12.123.1 , 112.12.123.2 , 112.12.123.3 。 112.12.123.4 实现以下:
upstream myservers {
server 112.12.123.1:8080 weight = 2;
server 112.12.123.2:8080 weight = 3;
server 112.12.123.3:8080 down;
server 112.12.123.4:8080 backup;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
location / {
root /data/page;
}
lcoation /css {
alias /data/css/;
}
location /api {
proxy_pass http://myservers;
}
}
}
upstream内置了三种负载均衡策略,分别是:
round-robin,轮循(默认)程序员
Nginx根据请求次数,将每一个请求均匀分配到每台服务器算法
least-connected,最少链接apache
将请求分配给链接数最少的服务器。Nginx会统计哪些服务器的链接数最少。api
ip-hash跨域
绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的全部请求,都将经过HASH算法,找到以前处理这台客户端请求的服务器,而后将请求交给它来处理。 在这里,咱们没有指定负载均衡策略,那么它就是默认的round-robin。tomcat
weight?服务器
经过指定每台服务器的权重,咱们能够进一步影响nginx的负载均衡算法 在上面的示例中,若是未配置服务器权重,这意味着全部指定的服务器都被视为具备同等资格的特定 负载平衡方法。 注意,weight只能用在round-robin策略中
其他的一些配置
backup
将服务器标记为备份服务器。它将在主服务器不可用时处理请求。
down
将服务器标记为永久不可用。
(四)访问控制
访问控制说白了就是和白名单,黑名单差很少。这里空的是ip地址。
具体配置以下:
location / {
allow 121.237.63.233;
allow 121.237.63.220;
deny all;
}
allow和deny这两个指令的意思是指,容许ip和限制ip ,all 表示全部。
nginx 经常使用命令
找到本身安装目录 nginx/sbin 路径下来
启动 ./nginx
中止 ./nginx -s stop
重启 ./nginx -s reload