centos上部署nginx服务
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
#用户是nginx
user nginx;
#工作进程自动(有多少cpu就开多少进程)
worker_processes auto;
#错误日志
error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf; events {
#一个进程里边开多少个线程
worker_connections 1024;
} http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#访问日志
access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048; include /etc/nginx/mime.types;
default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
# 可自定义的配置文件
include /etc/nginx/conf.d/*.conf; server {
#监听的端口号
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
#网站的根目录
root /usr/share/nginx/html; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location / {
} error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
保存配置文件,启动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做反向代理服务器,使用三种模式作负载均衡
- round-robin:轮循-将网页请求按照顺序向web服务器分配,反复的执行这样的过程,比如请求1给web1,请求2给web2,请求3再给web1
- least-connected:最小链接调度-比如web1当前有100个链接,web2只有一个链接,那下次来的请求将分配给web2服务器
- ip-hash:根据请求的ip地址,去访问上次已经访问过的web服务器,也叫会话保持
- 使用nfs作共享存储
四、示例步骤
1.准备两台web服务器,一台反向代理服务器,一台共享存储服务器。均安装nginx和nfs
2.在反向代理服务器上修改 --->vim /etc/nginx/nginx.conf为----->round-robin
定义一组nginx要管理的web组
upstream myapp1{
server 192.168.31.144;
server 192.168.31.145;
} 在location中自定义要启用的管理组
location / {
proxy_pass http://myapp1;
}

3.在web服务器上修改 --->vim /etc/nginx/nginx.conf
bash 在网站根目录下,自定义web1.txt,echo web>>web1.txt<br/> 设置网站根目录优先查找的文件为自定义的文件


bash 访问nginx代理服务器

4.制作nfs服务器(参考nfs安装及使用)
已经创建了一台nfs服务器,共享了一个/share文件夹
将nfs共享磁盘挂载到网站根目录下--->mount -t nfs 192.168.31.147:/share /usr/share/nginx/html
并且修改web1和web2的vim /etc/nginx/nginx.conf,定义index为share.txt
5.使用浏览器访问nginx服务器,服务器就去轮循访问web1和web2(就是访问nfs服务器上的share.txt)

centos上部署nginx服务的更多相关文章
- CentOS上部署JAVA服务【转】
http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...
- 在 CentOS 上部署 Nginx 环境
这里的案例主要通过虚拟机( vmware workstation (14) )的方式安装 Center OS 到本地环境 资源下载: vmware workstation / CentOS 本次 ...
- 如何在 Ubuntu 和 CentOS 上启用 Nginx 的 HTTP/2 协议支持
HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...
- 在CentOS 上搭建nginx来部署静态页面网站
在centOs 上搭建nginx来部署静态页面网站 一.部署服务器环境 nginx:轻量级.高性能的HTTP及反向代理服务器,占用内存少,并发能力强,相比老牌的apache作为web服务器,性能更加卓 ...
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作
CentOS 7.3 这部分以在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作. 登录 ECS 管理控制台,确认实例所在安全组 ...
- 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站
目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...
- 在CentOS上部署kubernetes1.9.0集群
原文链接: https://jimmysong.io/kubernetes-handbook/cloud-native/play-with-kubernetes.html (在CentOS上部署kub ...
- WTM asp.net core应用程序在Ubuntu上和CentOS上部署
wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目,选择发布,如下图: Ubuntu安装.net core运行时 Ubuntu我是用的Vmware虚拟机 ...
随机推荐
- sql server 查询所有被锁表并批量解除
废话不多说,直接上代码: --查询被锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) table ...
- 使用PHP写ajax接口
使用PHP写ajax接口 之前有学过php都是前后端没有分离的,所以也想去了解后端是怎么写出ajax接口的,可能问了别人或者上网找了很多资料都很有有点懵,或者说直接用TP或者lavarel这些后端框架 ...
- selenium 图片上传方法。
找到图片上传的input标签: 直接使用send_keys()传值 browser.find_element_by_class_name("upload-pic").send_ke ...
- [寒假学习笔记](一)Markdown语法学习
Markdown 学习 在博客园上使用markdown编辑,记录学习进度,以来日可以复习 前期准备 1. 安装markdownpad2 官网直接找下载安装,遇到bug他会自动提示信息,跟着提示去安装一 ...
- 剑指offer-二维数组中的查找01
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- Python 内置函数介绍
作者博文地址:http://www.cnblogs.com/spiritman/ Python Built-in Functions
- C++ STL栈和队列
在C++标准库(STL)中,实现了栈和队列,方便使用,在这里我整理了一下笔记,作简要介绍. 1,栈(stack): 头文件 : #include<stack> 定义栈 :stack< ...
- 团队展示(I know)
一.队员姓名与学号 姓名 学号 组长 陈家权 031502107 赖晓连 031502118 ★ 雷晶 031502119 林巧娜 031502125 庄加鑫 031502147 二.队名 I kno ...
- Beta结束感想
我得到的: 管理一个9人团队的经验 与组内成员(大部分一开始并不认识)共同向同一个目标努力的宝贵经历 学会使用Github的organization来管理整个团队的代码 学会使用leangoo这样的协 ...
- Myeclipse错误:Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project ...解决方法
解决办法:1.首先关闭MyEclipse工作空间.2.然后删除工作空间下的“/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.gen ...