RHCE---web服务器①

使用nginx搭建web网站

概念
特点
nginx架构
  • 注意:默认情况下,nginx会建立和服务器CPU核心数相等的worker进程,woker进程之间相互独立,若一个进程故障不会影响其它进程

nginx正向代理功能

  • 图:
  • 分析:它的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我,从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

    nginx反向代理功能

  • 图:

  • 分析:反向代理正好相反,它也是在客户端和服务器端的一个代理服务器,但是这个代理服务器的目的是用来保护服务器端的,当外网客户端来访问我们的服务器时为了避免暴露应用服务器的实际ip地址,我们会让客端访问代理服务器,然后代理服务器再根据客户端的请求去实际的应用服务器获取响应内容并返回客户端

nginx负载均衡功能

部署Nginx

root@server \~# setenforce 0

root@server \~# systemctl stop firewalld

root@server \~# systemctl disable firewalld

root@server \~# yum install nginx -y

root@server \~# nginx -V # 查看版本,编译器、配置参数等信息

root@server \~# systemctl start nginx # 启动httpd

root@server \~# systemctl enable nginx # 设置开机启动

Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

root@server \~# systemctl status nginx # 查看状态,q键退出查看

root@server \~# ps -ef | grep nginx # 查看进程

root 1690 1 0 13:57 ? 00:00:00 nginx: master process /usr/sbin/nginx

nginx 1691 1690 0 13:57 ? 00:00:00 nginx: worker process

nginx 1692 1690 0 13:57 ? 00:00:00 nginx: worker process

root 1726 1510 0 14:00 pts/0 00:00:00 grep --color=auto nginx

常用命令

systemctl系列

systemctl start nginx # 启动服务

systemcctl restart nginx # 重启服务

systemctl enable nginx # 开机启动

systemctl status nginx # 查看状态

nginx自带命令

nginx # 启动nginx

nginx restart # 重启服务

nginx -V # 查看版本号

nginx -t # 检查配置文件的语法错误,无错返回ok

网页默认目录:/usr/share/nginx/html
访问日志:/var/log/nginx/access.log
错误日志:/var/log/nginx/error.log

主配置文件

root@server \~# vim /etc/nginx/nginx.conf

实验操作

实验1:快速搭建网站
实验2:替换网页目录

新建网页存储目录

root@server \~# mkdir -p /www/sczl # 网页存储目录不能放在/root下

使用xftp将windows端的sczl文件夹中的数据上传到Linux端的/www/sczl目录内

root@server \~# vim /etc/nginx/nginx.conf

定位第42行,修改如下:

root /www/sczl;

root@server \~# systemctl restart nginx # 重启服务

测试:打开windows端浏览器输入服务端IP地址

实验3:搭建密码验证功能来访问网站数据

第一步:准备工作

root@server \~# setenforce 0

root@server \~# systemctl stop firewalld

root@server \~# systemctl disable firewalld

root@server \~# yum install nginx httpd-tools -y

root@server \~# systemctl start nginx # 启动httpd

root@server \~# systemctl enable nginx # 设置开机启动


第二步:新建账户

第三步:增加密码访问控制

第四步:设置访问网站时需要验证密码

root@server \~# mkdir /www

使用xftp将zy网页上传到/www

root@server \~# vim /etc/nginx/nginx.conf

server {

listen 80;

listen :::80;

root /www/zy;

auth_basic "Please input password";
auth_basic_user_file /etc/nginx/passwd;

}

root@server \~# nginx -t

实验5:搭建显示目录列表的网站,用于下载数据

第一步:创建用于查看的目录列表

第二步:配置文件

autoindex on; # 开启目录文件列表

autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes

autoindex_localtime on; # 显示的文件时间为文件的服务器时间

第三步:重启服务测试

实验6nginx负载均衡

环境准备:至少 3 台 Linux 服务器

  • 1 台作为 Nginx 负载均衡器(LB)

  • 2 台作为 后端应用服务器(Web/APP)

第一步:所有主机安装nginx

复制代码
yum install  nginx -y

第二步:后端2台主机部署网站

bash 复制代码
# node1操作
[root@node1 ~]# mkdir -p  /www/test

[root@node1 ~]# echo  "第一台机子,192.168.88.131"  >  /www/test/index.html

[root@node1 ~]# vim  /etc/nginx/nginx.conf
       root         /www/test;

[root@node1 ~]# systemctl enable --now  nginx
bash 复制代码
# node2操作
[root@node2 ~]# mkdir -p  /www/test

[root@node2 ~]# echo  "第二台机子,192.168.88.132."  >  /www/test/index.html

[root@node2 ~]# vim  /etc/nginx/nginx.conf
       root         /www/test;

[root@node2 ~]# systemctl enable --now  nginx

第三步:配置 Nginx 负载均衡器(核心步骤)

第四步:使用Windows作为客户机访问负载均衡服务器

基于 IP 地址的虚拟主机

虚拟主机的本身就是共享,通过多个网站共享一台物理硬件,使用不同的技术来区分之间的差别

原理
  • 如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,当用户请求的IP地址不同,则会访问到不同网页,且每个网站都有一个独立的IP地址。(常用)

  • 注意:主机必须有多个IP地址

实验7 增加多个IP地址,实现基于不同IP地址的虚拟主机功能

第一步:准备工作

bash 复制代码
# 恢复快照
[root@server ~]# setenforce  0           

[root@server ~]# systemctl stop  firewalld

[root@server ~]# systemctl disable  firewalld

[root@server ~]# yum  install  nginx  -y

[root@server ~]# systemctl start  nginx   # 启动httpd
 
[root@server ~]# systemctl enable  nginx  # 设置开机启动
bash 复制代码
# 给网卡增加2个IP地址
[root@server ~]# nmcli c  modify ens32 +ipv4.addresses 192.168.48.150/24
[root@server ~]# nmcli c  modify ens32 +ipv4.addresses 192.168.48.151/24
[root@server ~]# nmcli c  reload
[root@server ~]# nmcli c  up  ens32  

第二步:新建2个存储网页的目录,写入网页文件

第三步:修改配置文件,建立基于IP地址的虚拟主机

第四步:测试输入不同ip,则访问的是不同主页

基于端口号的虚拟主机

这个路径是用于加载主配置文件的路径,避免主配置文件过于繁杂,可以将要配置的内容写在、etc/nginx/conf.d 的目录下,文件名任意但是后缀必须是.conf

也可以自定义路径,但是就需要在主配置文件里也改掉这个路径即可。

cpp 复制代码
server {
          listen   81;
          server_name  _;
          root      /www/sczl;
}

server {
          listen   82;
          server_name  _;
          root      /www/zy;
}

第四步:重启服务,测试

cpp 复制代码
cd /etc/nginx/conf.d/
cpp 复制代码
[root@server ~]# systemctl restart nginx   # 重启服务

# 打开windows的浏览器输入192.168.48.150:81或者192.168.48.150:82进行测试
实验8:使用2个域名建立虚拟主机网站

第一步:新建2个存储网页文件的目录,使用xftp将网站文件上传

cpp 复制代码
[root@server ~]# mkdir  -p  /www/zy
[root@server ~]# mkdir  -p  /www/sczl

第二步:手动配置IP地址与域名的映射关系

Linux的本地域名解析地址在 /etc/hosts

cpp 复制代码
vim /etc/hosts
# 添加如下内容:

第四步:编辑配置文件

也可以直接编辑主配置文件

root@server \~# vim /etc/nginx/nginx.conf

或者如下

cpp 复制代码
cd /etc/nginx/conf.d/
cpp 复制代码
vim virt_hosts.conf 

第五步:重启服务,测试

cpp 复制代码
[root@server ~]# systemctl restart nginx   # 重启服务

# windows端打开浏览器输入域名测试
相关推荐
好好风格2 分钟前
宝塔面板 HTTPS 端口证书不生效排查记录
linux·运维·nginx
Forget_855025 分钟前
HCIA——计算机网络诞生与发展
服务器·网络·计算机网络
xiaoshuaishuai833 分钟前
C# AvaloniaUI 资源找不到报错
java·服务器·前端·windows·c#
用户2367829801681 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux
zzipeng1 小时前
Linux LCD驱动
linux·运维·服务器
思麟呀1 小时前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
浮生若城1 小时前
Linux库制作与原理(2):理解链接与加载
linux·运维·服务器
Cat_Rocky1 小时前
Gitlab安装与配置
linux·运维·gitlab
志栋智能1 小时前
超自动化巡检:降低运维总成本(TCO)的有效路径
大数据·运维·网络·人工智能·自动化
爱讲故事的1 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#