腾讯云开发者社区 云计算运维之WEB服务器介绍和搭建

云计算运维之WEB服务器介绍和搭建

一、WEB服务器介绍概要:网站服务器,提供客户的【信息浏览】【数据下载】【数据存储】【脚本运行】服务运行方式被动响应,即由客户端发出请求,服务器进行接收并进行响应分类:【Apache】【Nginx】【IIS(Windows的WEB服务器)】【lighttpd】工作原理[1]、连接过程:【WEB服务器】与【浏览器】建立连接,...

egzosn  ·  2025-03-13 17:32:09 发布

一、WEB服务器介绍

概要:

网站服务器,提供客户的【信息浏览】【数据下载】【数据存储】【脚本运行】服务

运行方式

被动响应,即由客户端发出请求,服务器进行接收并进行响应

分类:

【Apache】【Nginx】【IIS(Windows的WEB服务器)】【lighttpd】

工作原理

[1]、连接过程:【WEB服务器】与【浏览器】建立连接,通过找到[socket]虚拟文件来确定连接的建立

[2]、请求过程:使用[socket]向【WEB服务器】提出各种请求

[3]、应答过程:请求传输到【WEB服务器】并将响应传输到【浏览器】

[4]、关闭连接:应答完成后关闭连接

【注】四个步骤环环相扣,且支持多进程多线程混合

socket讲解

socket套接字本质上是[ip:port]的具象化,也有以文件形式的本地socket

存在的意义:两端进行[数据交互],[数据传输]

本地套接字

单机LNMP,应用程序在本地设备内部的数据数据交互

php-->192.168.30.100:9000
mysql-->192.168.30.100:3306
  • 1.
  • 2.
网络套接字

部署LNMP,不同设备之间的远程访问-->远程socket

【注】:【本地内存文件socket形式】的传输效率高于网络socket的传输效率

二、企业网络架构讲解

#收费技术栈
[操作系统-redhat] 
[前端写代码-jquery + js]
[代码管理-svn]
[数据库-oracle]
[后端应用-tomcat + java]
[web服务器- apache]

#开源技术栈
[操作系统-centos]
[前端写代码-jquery + js]
[代码管理-git]
[数据库-mysql]
[后端应用-tomcat + java + python +perl]
[web服务器-nginx]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

有钱/大公司:自己造机房+买服务器+数据自己掌控+自招IDC机房运维+Linux系统运维

【头条、美团、苹果】

中等公司/外企:自购服务器、专业机房托管

小型公司:云服务器

三、Apache介绍

概要

世界使用排名第一的WEB服务器软件。具有跨平台性和安全性

源于“A patchy server”读音,意[充满补丁的服务器]

特点

[1]、代码开源

[2]、简单+速度快+性能稳定+可做代理服务器

[3]、跨平台性和安全性

四、Nginx介绍

概要

高性能的HTTP和反向代理服务器,支持【IMAP/POP3/SMTP】代理服务器

编写方式:事件驱动。

云计算运维之WEB服务器介绍和搭建_nginx

特点

[1]、静态文件处理和文件自动索引,文件描述符缓冲

[2]、无缓存的反向代理加速

[3]、高稳定性——简单的负载均衡和容错

[4]、热部署,服务不间断,可防DOS类Attack

#优势
反向代理+软件负载均衡[硬件负载均衡也有,f5,netscaler,但是价格昂贵,小公司不会使用]
利用nginx搭建高可用性的负载均衡站点
支持bsd的开源许可协议--给用户更自由的使用权限,修改源码
  • 1.
  • 2.
  • 3.
  • 4.

优势

  • 配置文件更加易懂
  • 网站rul地址重写,根据url特点进行请求转发和判断

【判断7层负载均衡。[确定移动端-->移动端服务器][确定PC端--PC端服务器]】

  • 高可用性配置(防止单点故障,服务器崩溃)
  • 节省网络带宽,支持静态文件压缩后传输,支持gzip压缩
  • 热部署,不停止nginx情况下更新代码,支持7*24h运转

搭建

1、系统环境

Centos7 Linux 

#Nginx的三个版本
nginx.com	#商业版
nginx.org	#开源版
https://tengine.taobao.org/
#Tengine是由淘宝发起的WEB服务项目,增加了一些大量的高级功能,以保证大量访问的需求
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
2、关闭SELinux和防火墙

SELinux——Linux内核模块,提供强访问控制机制,增强系统的安全性

默认情况下。SELinux会限制Nginx访问。【无法访问非默认目录下的文件】【无法绑定到非标准端口】

#修改selinux配置文件	
	#法一、临时禁用,SELinux设置为Permissive模式,会记录违规行为,但不会阻止操作。重启后失效
		setenforce 0
	#法二、永久禁用
  	vi /etc/selinux/config
    	SELINUX=permissive	#临时禁用[二选一]
      SELINUX=disabled		#完全禁用[二选一]
   	重启系统后生效
    systemctl stop firewalld
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

云计算运维之WEB服务器介绍和搭建_nginx的安装_02

3、安装epel-release源
yum-y install epel-release
  • 1.

云计算运维之WEB服务器介绍和搭建_负载均衡_03

4、安装nginx
yum-y install nginx

#设置官方提供的centos的nginx源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.e17.ngx.noarch.rpm
#修改源文件
vim /etc/yum.repos.d/nginx.repo
	name=nginx repo
  basurl=http://nginx.org/packages/centos/7/$basearch/
  gpgcheck=0
  enabled=1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

云计算运维之WEB服务器介绍和搭建_负载均衡_04

【注】如果选择手动安装[编译安装]需要备份原先的文件

选择了nginx编译安装,需要解决linux的编译开发环境,gccmake 编译工具
使用之前必须确定原先的源文件,并且备份
cat -n /etc/yum.repos.d
cat -n /etc/epel.repo

【1】确保有wget命令
yum -y install wget

【2】备份旧的yum仓库文件
mkdir /etc/yum.repos.d/repo.bak
mv * ./repo.bak	#将原先的文件全都移动到备份文件当中,如果是阿里的源,则不需要如上操作

【3】访问阿里云的Centos镜像站找到对应的源文件,根据操作进行安装源文件
[CentOS-Base.repo][epel.repo]

【4】清空旧的yum缓存,生成新的yum缓存,加速下次的下载
yum clean all
yum makecache
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

云计算运维之WEB服务器介绍和搭建_服务器_05

云计算运维之WEB服务器介绍和搭建_nginx_06

【5】在配置了阿里云的yum源后,进行安装如下编译工具
yum-y install gcc gcc-c++ autoconf automake make
  • 1.
  • 2.

云计算运维之WEB服务器介绍和搭建_nginx_07

5、安装nginx所需的第三方系统库

[nginx的静态资源压缩功能所需的gzip lib库]、[nginx需要支持URL重写需要的pcre库]

[perl开发的依赖库]、[nginx搭建加密站点https所需的openssl依赖库]等

yum-y install zlib zlib-devel openssl openssl-devel pcre pcre-devel wget httpd-tools vim
  • 1.

云计算运维之WEB服务器介绍和搭建_服务器_08

6、检查防火墙是否关闭,selinux、yum配置、网络情况等
iptables-L   #没有关闭则需要进行如下命令:systemctl stop firewalld
getenforce		#没有关闭则需要进行如下命令:setenforce 0
ping baidu.com	#测试网络连通性
  • 1.
  • 2.
  • 3.

云计算运维之WEB服务器介绍和搭建_负载均衡_09

7、开始编译安装nginx
7.1、下载程序源代码
【通过官网去下载】【也可以下载淘宝的Tengine】[二选一]
cd /opt
wget http://nginx.org/download/nginx-1.17.10.tar.gz
wget http://tengine.taobao.org/download/tengine-3.1.0.tar.gz
  • 1.
  • 2.
  • 3.
  • 4.

云计算运维之WEB服务器介绍和搭建_nginx的安装_10

7.2、解压缩二选一
tar -zxvf tengine-3.1.0.tar.gz
  • 1.

云计算运维之WEB服务器介绍和搭建_nginx的安装_11

7.3、进入源代码目录,查看文件,准备开始编译安装
[root@localhost tengine-3.1.0]# ll
total 420
-rw-rw-r--.  1 root root    931 Oct 27  2023 AUTHORS.te
drwxrwxr-x.  6 root root   4096 Oct 27  2023 auto				#检测系统模块依赖信息
-rw-rw-r--.  1 root root 323310 Oct 27  2023 CHANGES		#存放nginx的变化记录日志
-rw-rw-r--.  1 root root  31076 Oct 27  2023 CHANGES.cn
-rw-rw-r--.  1 root root  39892 Oct 27  2023 CHANGES.te
drwxrwxr-x.  2 root root    184 Oct 27  2023 conf				#存放nginx著配置文件的目录
-rwxrwxr-x.  1 root root   2502 Oct 27  2023 configure	#可执行脚本,用于释放编译文件的定制脚本
drwxrwxr-x.  4 root root    109 Oct 27  2023 contrib		#提供了vim插件,配置文件颜色区分
drwxrwxr-x.  4 root root     67 Oct 27  2023 docs
drwxrwxr-x.  2 root root     40 Oct 27  2023 html				#存放了标准html页面文件
-rw-rw-r--.  1 root root   1715 Oct 27  2023 LICENSE
drwxrwxr-x.  2 root root     21 Oct 27  2023 man
drwxrwxr-x. 33 root root   4096 Oct 27  2023 modules
drwxrwxr-x.  3 root root     20 Oct 27  2023 packages
-rw-rw-r--.  1 root root   5729 Oct 27  2023 README.markdown
drwxrwxr-x. 10 root root    103 Oct 27  2023 src				#存放了nginx源代码目录
drwxrwxr-x.  4 root root     43 Oct 27  2023 tests
-rw-rw-r--.  1 root root     43 Oct 27  2023 THANKS.te
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

云计算运维之WEB服务器介绍和搭建_服务器_12

7.4、开始准备编译三部曲
第一曲

进入源代码目录,执行编译脚本文件【指定安装路径】【开启额外功能】等

[1]、确保目录下有configure文件,并且可执行

[2]、查看编译脚本的信息

./configure--help
  • 1.

 [3]、执行编译脚本文件,释放makefile等信息

--prefix=/opt/tngx232

--with-http_ssl_module

--with-http_flv_module

--with-http_gzip_static_module

--with-http_stub_status_module

--with-threads

--with-file-aio

--with-jemalloc

./configure--prefix=/opt/tngx232  --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio
  • 1.
第二曲

直接开始下一步安装,输入make指令

make
  • 1.

云计算运维之WEB服务器介绍和搭建_负载均衡_13

第三曲

点击开始安装

make install
  • 1.

云计算运维之WEB服务器介绍和搭建_服务器_14

7.5、查看安装后的nginx目录
cd ../tngx232
ll

[root@localhost tngx232]# ll
total 4
drwxr-xr-x. 2 root root 4096 Mar 13 16:35 conf		#存放nginx的配置文件【nginx.conf】
drwxr-xr-x. 2 root root   40 Mar 13 16:35 html		#存放nginx的网页根目录文件,站点的静态文件数据
drwxr-xr-x. 2 root root    6 Mar 13 16:35 logs		#存放nginx的各种日志目录
drwxr-xr-x. 2 root root   19 Mar 13 16:35 sbin		#存放该软件的可执行命令
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

云计算运维之WEB服务器介绍和搭建_nginx_15

7.6、使用相对路径执行[nginx]或者配置绝对路径
/opt/tngx232/sbin/nginx#相对路径配置启动
netstat -tunlp			#查看nginx的启动情况
ps -ef | grep nginx | grep -v color

#编写专属的nginx环境变量
vim /etc/profile.d/nginx.sh
export PATH="$PATH:/etc/tngx232/sbin"

#设置环境变量后,需要进行重新启动使得环境变量生效
exit
echo $PATH
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

云计算运维之WEB服务器介绍和搭建_nginx_16

云计算运维之WEB服务器介绍和搭建_负载均衡_17

解释:
master:[包工头]用户来了,进行调度和分发,将请求交给worker进行操作
worker:[工人]进行执行操作
  • 1.
  • 2.
第一次输入nginx表示启动nginx服务
再次输入则会报错#端口被占用
nginx -s stop	#可以停止nginx后再次启动nginx服务,用于重新加载nginx配置
nginx -s reload	#可以实现平滑重启
  • 1.
  • 2.
  • 3.
  • 4.

云计算运维之WEB服务器介绍和搭建_负载均衡_18

云计算运维之WEB服务器介绍和搭建_负载均衡_19

7.7、记录IP地址,在物理机上进行访问

云计算运维之WEB服务器介绍和搭建_负载均衡_20

7.8、检查nginx的编译信息
nginx-V	#进行检查相关的编译信息
  • 1.

云计算运维之WEB服务器介绍和搭建_nginx的安装_21

五、lighttpd

概要

高性能,高安全,快速且配置灵活的web服务器产品【nginx的重头对手】

特点

内存占用量小,提供有效的API

对CPU负载情况管理,支持后台请求转发

fastcgi,scgi,资源压缩,url重写,别名等功能

六、tomcat

概要

开源的运行基于java的一个web应用服务器,根据serverlet进行执行

对于平台文件,静态文件,高并发处理较弱。一般结合nginx和apache使用

要使用tomcat应用服务器,需要掌握基本的java环境部署

七、IBM

基于java建立的环境

八、IIS

概要

基于windows平台建立的服务器特点

图形化界面为主,通过鼠标点击完成创建

仅windows平台可用

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐

  • 浏览量 825
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献42条内容