准备把服务器操作系统从Ubuntu改成CentOS,服务器程序由Apache改成Nginx,我需要准备什么?

wenzi容谦


nginx做前端,apache做后端,单纯nginx性能折扣大


尚物智


1、就目前来说,ubuntu 和 centos 操作系统都比较稳定,我公司也有很多产品跑在 ubuntu 上,也没见出现过什么问题。所以选择 ubuntu 还是 centos 完全是看个人的想法,熟悉哪个就用那个便是。ubuntu 使用 apt-get 管理包,对非专业的系统管理员更加友好些,因为它可以在使用未安装的命令时给出安装提示;centos 使用 yum 或 rpm 管理包,是开源主流的服务器选择对象。

2、涉及迁移问题,思想很简单,先备份数据和应用程序。作为运维人员,最稳妥的做法预先先做好安全备份,不然误操作的话,就要准备好跑路了,哈哈。

3、在 centos 上安装相同版本的所需软件,比如 PHP、MySQL等,如果确认版本不会影响应用程序的运行,可以安装最新版本即可。Nginx 是一个开源轻量大并发的代理中间件,处理静态资源的效率很高,反向代理;Apache 在处理动态请求上比 nginx 有优势,rewrite 强大,模块多。

4、方案:1). 直接使用 Nginx ----> PHP,配置好 location即可;2). Nginx + Apache ----> PHP,nginx proxy apache,让 apache 去处理 PHP。但只要资源给够,使用方案1就已经足够。

5、安装好需要先调式,调式通过后,恢复数据,测试验收,最后开放上线。


运维技术圈


如果要把服务器操作系统由Ubuntu改为CentOS、另外将WEB容器Apache改为Nginx,这就涉及了两方面的工作,即:系统迁移、应用程序迁移,这两方面涉及的工作各有重点,主要有以下:

1、服务器操作系统更换

由于Ubuntu和CentOS都是Linux发行版本,两者差异化并不大,所以这方面程序移植是没问题的,我们要做的就是:

  • 统计Ubuntu服务器上哪些软件包是必须安装的,然后在CentOS上一样安装上,避免迁移后运行程序缺少依懒;

  • 数据备份,如:网站程序、应用程序、数据库备份、必要的日志文件等;

  • 统计定时任务清单,要清楚哪些任务是要定时自动执行的;

  • 确认开机启动程序/服务有哪些;

  • 统计服务器上的用户和群组,另外要清楚知道服务器上目录权限的划分;

2、WEB容器迁移

由于Apache和Nginx配置不同,所以迁移前要做好确认,主要注意事项是:

  • 站点配置的方法不同;

  • URL Rewrite设置不同;

考虑到Nginx是专业的代理服务器,所以我们建议迁移后依旧由Apache做为WEB容器,前面加上Nginx作为前端代理,这种模式更能适应高流量站点。



综上,服务器操作系统换成CentOS是非常正确的选择,而WEB容器这块建议是 Nginx+Apache这种模式。

以上就是我的观点,我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!如果大家有不同看法,欢迎在下方评论区发表自己的观点 ~


网络圈


弱弱地问一句,大家在答题之前,都不看题的描述吗?

解题

主功能 Ubuntu->CentOS, Apache->Nginx。换操作系统,这个真的是考虑的因素太多太多。而题主贴出的图片,是Dockerfile。

那么题主指的是Docker镜像迁移吗。我们不说物理机,或云服务器的操作系统迁移了。说说docker镜像的切换。

ADD src /var/www

程序文件放置在Dockerfile文件夹下。将其拷贝到镜像的/var/www目录下。

其他的软件包使用 yum -y install 安装。

下面的ENV是配置APACHE需要的额系统用户,和修改相关目录的属主属组

EXPOSE 80

容易暴露80端口对外提供访问。

最末一句,开始apache服务。


Docker搭建LNMP环境

那么题主,你的docker镜像运行的是微服务吗?那么我们只要定制一个docker镜像就OK了。下面我们尝试按照题主给定的环境,搭建一个同等版本的的centos + php5 + nginx的docker镜像。


为了版本一直,docker内的软件包,可以使用yum指定同版本号安装。或者,使用源码编译安装,保持与原系统的一致即可。


Dockerfile内容如下:


FROM centos:7

ENV TIME_ZOME Asia/Shanghai

RUN rpm -Uvh

http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

RUN yum -y install nginx

RUN yum -y install git curl php5 php5-mcrypt php5-mysql

COPY nginx.conf /usr/local/nginx/conf/

WORKDIR /usr/local/nginx/

EXPOSE 80

CMD ["./sbin/nginx\

程序员小助手


最简单的办法就是直接上nginx反向代理:

好处:

1、为以后网站集群扩容做了一个好的铺垫;

2、对源站apache做了一个隐藏,安全同时也提高了。

3、nginx反向代理对多网站(虚拟机主机)的支持极佳。

步骤如下:

先把apache、数据库相关数据备份,然后更换操作系统,centos最好使用7版本的,考虑以后程序依赖内核的问题,然后把apache相关数据还原回去。

另外,我的建议是,在apache前段加一个nginx即可,直接使用反向代理,如果你apache使用php等动态网站,没必须花大量的时候去折腾更换网站架构。

nginx也要使用最新版的,避免老版本的漏洞问题

使用nginx反向代理的好处就是,以后网站集群扩容,增加新的网站、二级域名是很方便的,而且不需要做很大的改动。

架构图如下:


https://www.toutiao.com/c/user/5844231468/#mid=1634198915259405


悬钟Mr


以我的经验,ubuntu没必要换,两个都是很优秀的linux,也都很稳定,并没有一个比另一个强很多,或者必须的功能一个有另一个没有。何况两个操作系统命令还是有细微差异,习惯了ubuntu熟悉另外一个还是要时间。

至于apache换nginx很容易,nginx配置简单可以在相同环境配置好把配置文件拿到正式服务器用就好。把appache自动启动停了,再把nginx自动启动就好了。


LarryLe


1. 服务器操作系统更换

从ubuntu直接更换成centos,只需要替换yum源,优化系统内核,安装好docker环境以及配置好docker加速服务器。顺便熟悉一下yum安装软件的使用即可。

2. 备份好原来服务器上代码,数据库,静态文件,日志等到新的服务器上。

3.在centos使用docker重新构建你web运行环境,然后用docker启动容器。

4. 由于nginx与php交互是以fastcgi模式进行的,因此你需要构建两个容器,分别是nginx容器与php-fpm容器,然后用docker-compose来控制。


web架构师自我修炼


很高兴回答您的问题。如果您要更换服务器操作系统以及web服务器,建议您

1、先将原始的系统做一个备份,避免更换系统和程序之后出现问题 无法恢复

2、备份完成后,更换操作系统之前,先将一些操作系统的配置,比如 开启即启动的软件、用户组、用户权限、访问日志 、防火墙、FTP、定时任务、必备软件等等这些配置 备份下来,更换系统之后 对应的在新的centos系统上都添加上

3、更换为apache服务器之前,先将 网站程序和数据 、以及访问日志、虚拟主机的配置等相关的这些都备份下,更换为nginx之后需要对应更换,由于apache和nginx是两个不同的服务器,有一些配置项目(比如虚拟主机的配置 重写模块的配置)可能有所不同,需要对应的更改下

4、系统和程序都更换完成之后需要对应检查下 所有的网站是否能正常访问,系统是否能正常运行,如果系统能正常运行 即切换成功,否则需要根据报错对应排查原因

以上回答希望能对您所有帮助


一莉凡尘


你需要程序员陪你一起加班,Ubuntu改成centos还好说,Apache 改成ngnix可能就涉及到工作量了。


鸩鸩铕鹚


首先我分解下题主的问题,针对分解后的2个问题逐一进行详细的回答,那么拆解后的2个问题分别是:

  1. 操作系统的迁移:从Ubuntu迁移到CentOS;
  2. Web容器的迁移:Apache迁移到Nginx;

操作系统迁移

第一点操作系统从Ubuntu迁移到CentOS,这一点可以很顺利的迁移,因为Ubuntu和CentOS都是基于Linux的发行版本,底层系统原理大同小异,可以无缝迁移,但还是需要注意迁移的项目用到的操作系统功能,比如如果用了系统的防火墙功能、iptable用户黑白名单和访问拦截功能、crontab功能、安装插件、软件源仓库等等,这些配置项需要格外注意,因为系统间的差异是存在的,需要根据系统来适配最好的配置,但我强烈推荐使用CentOS做完服务器,下面是二者的详细不同点:

服务器迁移

相对于第一点的服务器迁移,Apache迁移到Nginx就是个大工程了,因为二者的技术架构完全不同,配置规则也大不相同,所以在迁移过程中一定要仔细地把Apache的配置都用Nginx的方式重新配置一边,而且一定要经过全面的测试,针对每个url,每个接口都要测试到才能正式替换。其实Apache和Nginx不存在谁替换谁的问题,他们各有所长,而且一般项目中都是前端nginx 抗并发,后端 apache 集群抗压,这样混合着用更能提供整个服务的健壮性和可靠性。

Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。

Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效。


综上,题主在迁移服务器的时候,一定要好好学习下Nginx的配置规则,确保把Apache的配置完整的迁移过来,而且一定要全面回滚的测试,要对上线的功能存在敬畏心,相信我,这都是作为一个过来人对你的真诚的忠告,如果有什么想法欢迎留言讨论。


分享到:


相關文章: