Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

主要作用: 轻量级的Web 服务器和反向代理服务器

一、软件安装

yum安装

1.先安装epel-release扩展包

2.在安装nginx服务

yum install nginx

3.修改配置文件

vim /etc/nginx/nginx.conf

  1. #用户是nginx
  2. user nginx;
  3. #工作进程自动(有多少cpu就开多少进程)
  4. worker_processes auto;
  5. #错误日志
  6. error_log /var/log/nginx/error.log;
  7.  
  8. pid /run/nginx.pid;
  9.  
  10. # Load dynamic modules. See /usr/share/nginx/README.dynamic.
  11. include /usr/share/nginx/modules/*.conf;
  12.  
  13. events {
  14. #一个进程里边开多少个线程
  15. worker_connections 1024;
  16. }
  17.  
  18. http {
  19. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. '$status $body_bytes_sent "$http_referer" '
  21. '"$http_user_agent" "$http_x_forwarded_for"';
  22. #访问日志
  23. access_log /var/log/nginx/access.log main;
  24.  
  25. sendfile on;
  26. tcp_nopush on;
  27. tcp_nodelay on;
  28. keepalive_timeout 65;
  29. types_hash_max_size 2048;
  30.  
  31. include /etc/nginx/mime.types;
  32. default_type application/octet-stream;
  33.  
  34. # Load modular configuration files from the /etc/nginx/conf.d directory.
  35. # See http://nginx.org/en/docs/ngx_core_module.html#include
  36. # for more information.
  37. # 可自定义的配置文件
  38. include /etc/nginx/conf.d/*.conf;
  39.  
  40. server {
  41. #监听的端口号
  42. listen 80 default_server;
  43. listen [::]:80 default_server;
  44. server_name _;
  45. #网站的根目录
  46. root /usr/share/nginx/html;
  47.  
  48. # Load configuration files for the default server block.
  49. include /etc/nginx/default.d/*.conf;
  50.  
  51. location / {
  52. }
  53.  
  54. error_page 404 /404.html;
  55. location = /40x.html {
  56. }
  57.  
  58. error_page 500 502 503 504 /50x.html;
  59. location = /50x.html {
  60. }
  61. }

保存配置文件,启动nginx服务->systemctl start nginx(最好是systemctl reload nginx) 如果访问不了,关闭防火墙,systemctl stop firewalld 启动浏览器,访问刚刚安装并配置了nginx的Linux服务器地址

二进制安装

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
  NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

二、软件安装及使用

  • 在服务器端机器上创建一个共享的目录,并修改配置文件/etc/exports,增加【/share 192.168.31.0/24(rw,sync,fsid=0)】,然后保存配置文件,并使用exportfs或者showmount -e查看是否启动配置成功
  • mkdir /share---->echo 123123>/sharea.txt
  • vim /etc/exports------>增加/share 192.168.31.0/24(rw,sync,fsid=0)
  • systemctl start rpcbind.service------>开启rpc服务
  • systemctl start bfs-server.service------>开启nfs服务
  • chmod -R O=rwx /share------>修改权限,让其他web服务器这个文件夹有修改权限

  • 另外开两台web服务器,都部署好nginx,在web服务器使用 showmount -e 192.168.31.146查看共享内容

  • 在web服务器上,将共享目录,挂载到本地 mount -t nfs 192.168.31.146:/share /usr/share/nginx/html
  • 在web服务器上,techo 123 /usr/share/nginx/html/share.txt
    修改共享目录的文件内容
  • 在nfs服务器上tail -1 /share/share.txt
    ,可以看到内容被web1上编辑为‘123’了

三、步骤和原理

  • 部署两台web服务器
  • 部署一台使用nginx做反向代理服务器,使用三种模式作负载均衡
  1. round-robin:轮循-将网页请求按照顺序向web服务器分配,反复的执行这样的过程,比如请求1给web1,请求2给web2,请求3再给web1
  2. least-connected:最小链接调度-比如web1当前有100个链接,web2只有一个链接,那下次来的请求将分配给web2服务器
  3. ip-hash:根据请求的ip地址,去访问上次已经访问过的web服务器,也叫会话保持
  • 使用nfs作共享存储

四、示例步骤

1.准备两台web服务器,一台反向代理服务器,一台共享存储服务器。均安装nginx和nfs

2.在反向代理服务器上修改 --->vim /etc/nginx/nginx.conf为----->round-robin

  1. 定义一组nginx要管理的web
  2. upstream myapp1{
  3. server 192.168.31.144;
  4. server 192.168.31.145;
  5. }
  6.  
  7. location中自定义要启用的管理组
  8. location / {
  9. proxy_pass http://myapp1;
  10. }

3.在web服务器上修改 --->vim /etc/nginx/nginx.conf

bash 在网站根目录下,自定义web1.txt,echo web>>web1.txt<br/> 设置网站根目录优先查找的文件为自定义的文件

bash 访问nginx代理服务器

4.制作nfs服务器(参考nfs安装及使用)

  1. 已经创建了一台nfs服务器,共享了一个/share文件夹
  2. nfs共享磁盘挂载到网站根目录下--->mount -t nfs 192.168.31.147:/share /usr/share/nginx/html
  3. 并且修改web1web2vim /etc/nginx/nginx.conf,定义indexshare.txt

5.使用浏览器访问nginx服务器,服务器就去轮循访问web1和web2(就是访问nfs服务器上的share.txt)

centos上部署nginx服务的更多相关文章

  1. CentOS上部署JAVA服务【转】

    http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...

  2. 在 CentOS 上部署 Nginx 环境

    这里的案例主要通过虚拟机( vmware workstation (14) )的方式安装 Center OS 到本地环境 资源下载:  vmware workstation   / CentOS 本次 ...

  3. 如何在 Ubuntu 和 CentOS 上启用 Nginx 的 HTTP/2 协议支持

    HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...

  4. 在CentOS 上搭建nginx来部署静态页面网站

    在centOs 上搭建nginx来部署静态页面网站 一.部署服务器环境 nginx:轻量级.高性能的HTTP及反向代理服务器,占用内存少,并发能力强,相比老牌的apache作为web服务器,性能更加卓 ...

  5. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

  6. 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作

    CentOS 7.3 这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作. 登录 ECS 管理控制台,确认实例所在安全组 ...

  7. 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

    目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...

  8. 在CentOS上部署kubernetes1.9.0集群

    原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...

  9. WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...

随机推荐

  1. java excel导出(表头合并,多行表头)

    @RequestMapping(value="orderExcelList2") public void orderExcelList2forJava(Order order,Ht ...

  2. JMeter学习工具简单介绍

    JMeter学习工具简单介绍   一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态 ...

  3. Unity利用Share SDK实现QQ、微信及微博第三方登录及定制内容分享(附代码)

    最近因为公司的项目需要添加一些实用性的功能,需要添加第三方登录及分享,采用的是Mob的SDK,可以先到其官网下载对应的SDK 点击这里,为了方便后期进行数据统计和分析,所以可以先添加一个应用,添加成功 ...

  4. TW实习日记:第八天

    今天早上主要是接着做昨天的微信端网页预览附件,听同事说当打包代码放入服务器上后,就不存在跨域问题了,也就懒得自己写接口了,那么就希望自己能一次过吧...结果写着写着,发现开发文档中关于预览文件的方法, ...

  5. redis 批量删除操作

    redis 批量删除操作 需要在redis里面清空一批数据,redis没有支持通配符删除, 只有del key1 key2 ... 但是可以通配符获取 KEYS PATTERN 然后利用linux管道 ...

  6. 413. Reverse Integer【LintCode java】

    Description Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-b ...

  7. 梯度消失&&梯度爆炸

    转载自: https://blog.csdn.net/qq_25737169/article/details/78847691 前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案. ...

  8. Golang项目开发管理

    工具 1. task(项目管理,类似于make) go get -u -v github.com/go-task/task/cmd/task 2. gopm(go依赖管理) go get -u git ...

  9. IBM基于Kubernetes的容器云全解析

    基于Kubernetes的容器云 容器云最主要的功能是以应用为中心,帮助用户把所有的应用以容器的形式在分布式里面跑起来,最后把应用以服务的形式呈现给用户.容器云里有两个关键点,一是容器编排,二是资源调 ...

  10. javascript event对象操作

    js代码: $(".leads_detail").click(function(e){ e = e || event; var t = e.target || e.srcEleme ...