本文内容:
1. nginx 简介
2. nginx 安装
3. nginx 简单使用html
Nginx是一个HTTP服务器,能够将服务器上的静态文件(如HTML、图片)经过HTTP协议展示给客户端。nginx
Nginx也是反向代理服务器。docker
说反向代理以前先说一下正向代理,正向代理相信不少大陆同胞都在这片神奇的土地上用过了。就是访问国外网被墙了,而后找个代理服务,经过该服务器访问国外网站,这个是正向代理。centos
反向代理是 客户端访问代理服务器,可是代理服务器没有用户须要的资源,而后代理服务器偷偷访问应用服务器,获取资源返回给用户,用户不知道代理服务器是访问了应用服务器,代理服务器也隐藏了应用服务器的url。(反向代理的典型用途是将 防火墙后面的服务器提供给Internet用户访问)浏览器
Nginx能够经过反向代理来实现负载均衡。服务器
2.1.1.添加Nginx到YUM源负载均衡
添加CentOS 7 Nginx yum资源库,打开终端,使用如下命令:网站
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.2.2.安装Nginxurl
在你的CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:spa
sudo yum install -y nginx
2.2.3. Nginx启动
nginx -c nginx.conf
启动后就能够访问 域名或者本机IP 若是出现下图,说明启动成功。
2.2.4. Nginx 中止
//查询出nginx的pid ps -ef|grep nginx //经过kill 命令杀死 nginx kill pid
注意图中nginx的 pid 为 10497
2.2.5. Nginx配置信息
网站文件存放默认目录
/usr/share/nginx/html
/etc/nginx/conf.d/default.conf
自定义Nginx站点配置文件存放目录
/etc/nginx/conf.d/
Nginx全局配置
/etc/nginx/nginx.conf
2.2.1下载镜像,
docker pull nginx:1.9
2.2.2 启动容器,
docker run -d -p 8080:80 nginx:1.9
把容器内的nginx的80端口,映射到当前服务器的8080端口,假设当前服务器的ip是192.168.0.100,浏览器输入http://192.168.0.100:8080/,就能够看到nginx已启动,
关于静态资源服务器的使用这里就不作说明了。
小例子:实现访问本机 ip 而后代理 个人博地址 ,也就是在浏览器输入本机地址,而后跳转到个人博客。
若是是本地安装的nginx 的话须要修改 /etc/nginx/conf.d/default.conf 配置文件
注释原有的 location 而后替换为新的location
//注释原有的 # location / { # root /usr/share/nginx/html; # index index.html index.htm; # } //新添加的 location / { proxy_pass http://blog.csdn.net/u012373815?viewmode=list; }
而后重启nginx ,访问本机ip 就会代理到“http://blog.csdn.net/u012373815?viewmode=list“ 个人博客地址。
若是是docker 安装的话,须要本地随意目录下新建default.conf 文件,内容以下:
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { proxy_pass http://blog.csdn.net/u012373815?viewmode=list; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
而后从新启动容器,将default.conf 文件映射到docker容器内。
启动命令以下:
docker run -p 8080:80 --name myNginx -v /本地路径/default.conf:/etc/nginx/conf.d/default.conf -d nginx:1.9
容器启动后 ,访问本机ip 就会代理到“http://blog.csdn.net/u012373815?viewmode=list“ 个人博客地址。
上面的配置只实现了反向代理没有实现传说中的负载均衡。全部的请求就都被反向代理到 个人博客地址去了。这样咱们反向代理的功能是实现了,但是就能代理到一台服务器上哪有什么负载均衡呀?这就要用到 nginx 的 upstream 模块了。
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; server backend4.example.com; } location / { proxy_pass http://backend; }
咱们在 upstream 中指定了一组机器,并将这个组命名为 backend,这样在 proxypass 中只要将请求转移到 backend 这个 upstream 中咱们就实现了在四台机器的反向代理加负载均衡。其中的 iphash指明了咱们均衡的方式是按照用户的 ip 地址进行分配。
要让配置生效,咱们没必要重启 nginx 只须要 reload 配置便可。
参考资料:
http://blog.csdn.net/u012486840/article/details/52610320
http://www.jb51.net/article/61137.htm