目录
- `nginx`
- 实验1(快速建站)
- 实验2(更换默认网页目录)
- 实验3(内网穿透花生壳)
- 实验4(综合nginx)
- 实验5(基于不同IP的虚拟主机网站)
- 实验6(基于不同端口号的虚拟主机网站)
- 实验7(基于不同域名的虚拟主机网站)
- `apache`
- 实验1(快速建站)
- 实验2(更换默认网页目录)
- 实验3(身份验证登录网页)
- 实验4(密码验证登录网页)
nginx
实验1(快速建站)
- 快速建站(nginx)
[root@server ~]# yum install nginx -y[root@server ~]# echo "welcome to csdn" > /usr/share/nginx/html/index.html[root@server ~]# systemctl restart nginx[root@server ~]# curl 192.168.160.137
welcome to csdn
也可在浏览器中输入本机ip查看
实验2(更换默认网页目录)
- 更换默认网页目录(nginx)
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx
- 第二步:新建网页存储目录/web,使用xftp将网页数据上传到/web内
[root@server ~]# mkdir /web
[root@server ~]# cd /web[root@server web]# ls
css img index.html js
- 第三步:修改主配置文件
[root@server ~]# vim /etc/nginx/nginx.confroot /web; # 找到第42行修改
- 第四步:重启服务器并测试
[root@server ~]# systemctl restart nginx
#windows端打开浏览器输入服务器的地址进行测试
实验3(内网穿透花生壳)
- 搭建网站,使用花生壳进行内网穿透,实现公网访问
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install httpd -y[root@server ~]# systemctl start httpd[root@server ~]# systemctl enable httpd
- 第二步:搭建网站,将网页数据/index上传后,编辑主配置文件
[root@server web1]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/web"
<Directory "/web"> AllowOverride None# Allow open access:Require all granted
</Directory>
- 第三步:重启服务器并测试,在浏览器中输入ip地址测试
[root@server ~]# systemctl restart nginx
- 第四步:使用贝锐花生壳https://hsk.oray.com/进行内网穿透
- 4.1注册,登录,完成身份证的实名认证
在这里插入图片描述
- 4.2注册个人账号
- 4.3使用微信扫码快速注册
- 4.4进行个人认证(需要使用个人身份证进行认证
- 4.5点击管理平台
- 4.6创建内网映射
- 4.7下载Linux客户端
- 4.8下载客户端,选择应用平台为RedHat ,“点击复制”
- 4.9Linux客户端下载并安装
[root@server ~]# wget "https://dl.oray.com/hsk/linux/phddns_5.3.0_amd64.rpm" -O phddns_5.3.0_amd64.rpm [root@server ~]# ls
anaconda-ks.cfg phddns_5.3.0_amd64.rpm[root@server ~]# rpm -ivh phddns_5.3.0_amd64.rpm
- 安装完之后出现的信息
- 启动
[root@server ~]# phddns start
phtunnel service start success !
- 复制下图“右下角的网址”,重新打开浏览器,输入http://b.oray.com,完成账号登录,激活
- 第五步:重新登录,使用SN登录
# 查看SN号
[root@server ~]# phddns status+--------------------------------------------------+| Oray PeanutHull Linux 5.3.0 |+--------------------------------------------------+| Runstatus: ONLINE |+--------------------------------------------------+| SN: oray1358b95b40a9 |+--------------------------------------------------+| Remote Management Address http://b.oray.com |+--------------------------------------------------+
- 激活(手机扫码或贝锐账号)
- 第六步:访问网站
http://9266gd775bt0.vicp.fun
(创建内网映射时生成的网址)进行测试
实验4(综合nginx)
-
包含了以上两种功能
-
综合练习:请给openlab搭建web网站,网站需求:
-
1.基于域名www.openlab.com可以访问网站内容为welcome to openlab!!!
-
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student网站访问学生信息,www.openlab.com/data网站访问教学资料,www.openlab.com/money网站访问缴费网站
-
3.要求
- 学生信息网站只有song和tian两人可以访问,其他用户不能访问。
- 访问缴费网站实现数据加密基于https访问。
-
第一步,准备工作
# 恢复快照,关闭安全软件[root@server ~]# yum install nginx -y[root@server ~]# yum install httpd-tools -y
# windows的C\:windows\system32\drivers\etc\hosts 文件进行DNS映射
192.168.48.130 www.openlab.com # 添加
- 第二步,创建www.openlab.com网站
[root@server ~]# mkdir -p /www/openlab[root@server ~]# echo 'welcom to csdn' > /www/openlab/index.html[root@server ~]# vim /etc/nginx/nginx.conf
server {listen 80;server_name www.openlab.com;root /www/openlab;
}[root@server ~]# systemctl restart nginx
# window端打开浏览器输入www.openlab.com测试
- 第三步:创建教学资料子网站www.openlab.com/data
[root@server ~]# mkdir /www/openlab/data[root@server ~]# echo 'data' > /www/openlab/data/index.html[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;server_name www.openlab.com;root /www/openlab;# 添加以下配置location /data {alias /www/openlab/data;index index.html index.htm;}
}
[root@server ~]# systemctl restart nginx
# window端打开浏览器输入www.openlab.com/data测试
- 第四步: 创建学生信息子网站www.openlab.com/student
[root@server ~]# mkdir /www/openlab/student [root@server ~]# echo 'student' > /www/openlab/student/index.html[root@server ~]# useradd song [root@server ~]# passwd song # 密码123456[root@server ~]# useradd tian[root@server ~]# passwd tian # 密码654321[root@server ~]# htpasswd -c /etc/nginx/passwd song # 输入密码123456[root@server ~]# htpasswd /etc/nginx/passwd tian # 输入密码654321[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;server_name www.openlab.com;root /www/openlab;location /data {alias /www/openlab/data;index index.html index.htm;}# 添加以下配置location /student {alias /www/openlab/student;index index.html index.htm;auth_basic "Please input password";auth_basic_user_file /etc/nginx/passwd;}}
[root@server ~]# systemctl restart nginx
- 第五步:创建缴费子网站www.openlab.com/money
[root@server ~]# mkdir /www/openlab/money[root@server ~]# echo 'money' > /www/openlab/money/index.html[root@server ~]# openssl genrsa -aes128 2048 > /etc/nginx/money.key
Generating RSA private key, 2048 bit long modulus (2 primes)
...............................................................+++++
........+++++
e is 65537 (0x010001)
Enter pass phrase: # 输入加密私钥的密码123456
Verifying - Enter pass phrase: # 再次输入[root@server ~]# openssl req -utf8 -new -key /etc/nginx/money.key -x509 -days 365 -out /etc/nginx/money.crt # 制作证书
Enter pass phrase for /etc/nginx/money.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----- # 证书信息
Country Name (2 letter code) [AU]:86
State or Province Name (full name) [Some-State]:shanxi
Locality Name (eg, city) []:xi'an
Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab
Organizational Unit Name (eg, section) []:RHCE
Common Name (e.g. server FQDN or YOUR name) []:server
Email Address []:andy@qq.com[root@server ~]# cd /etc/nginx[root@server nginx]# cp money.key money.key.org[root@server nginx]# openssl rsa -in money.key.org -out money.key
Enter pass phrase for money.key.org: # 输入密码123456
writing RSA key[root@server nginx]# vim /etc/nginx/nginx.conf
# 在上一个server服务下面重新写一个serverserver {listen 443 ssl http2;server_name www.openlab.com;location /money {alias /www/openlab/money;index index.html index.htm;}ssl_certificate "/etc/nginx/money.crt";ssl_certificate_key "/etc/nginx/money.key";}[root@server nginx]# systemctl restart nginx# windows端打开浏览器输入https://www.openlab.com/money测试
实验5(基于不同IP的虚拟主机网站)
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx
- 第二步 查看并添加IP地址
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul t qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP gro up default qlen 1000link/ether 00:0c:29:ac:68:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.160.137/24 brd 192.168.160.255 scope global noprefixroute ens32valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feac:68d3/64 scope link noprefixroutevalid_lft forever preferred_lft forever
[root@server ~]# nmcli c modify ens32 +ipv4.address 192.168.160.200/24
[root@server ~]# nmcli c modify ens32 +ipv4.address 192.168.160.201/24
[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:ac:68:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.160.137/24 brd 192.168.160.255 scope global noprefixroute ens32valid_lft forever preferred_lft foreverinet 192.168.160.200/24 brd 192.168.160.255 scope global secondary noprefixroute ens32valid_lft forever preferred_lft foreverinet 192.168.160.201/24 brd 192.168.160.255 scope global secondary noprefixroute ens32valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feac:68d3/64 scope link noprefixroutevalid_lft forever preferred_lft forever
- 第三步:创建两个IP的启动主页面
[root@server ~]# mkdir -p /www/ip200
[root@server ~]# mkdir -p /www/ip201
[root@server ~]# echo '200' > /www/ip200/index.html
[root@server ~]# echo '201' > /www/ip201/index.html
- 第四步 更改主配置文件
[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen 80;server_name 192.168.160.200;root /www/ip200;}server {listen 80;server_name 192.168.160.201;root /www/ip201;}
- 第四步:重启nginx,打开window输入192.168.160.200测试
[root@server ~]# systemctl restart nginx# 在虚拟机上测试
[root@server ~]# curl 192.168.160.200
200
[root@server ~]# curl 192.168.160.201
201
实验6(基于不同端口号的虚拟主机网站)
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx
- 第二步:创建两个不同端口网页
[root@server ~]# mkdir -p /www/port5111
[root@server ~]# mkdir -p /www/port5222
[root@server ~]# echo "5111" > /www/port5111/index.html
[root@server ~]# echo "5222" > /www/port5222/index.html
- 第三步:配置主配置文件
[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server{listen 5111;server_name 192.168.160.137;root /www/port5111;}server{listen 5222;server_name 192.168.160.137;root /www/port5222;}
- 第四步:重启测试
# 或在window端输入192.168.160.137:5111测试
[root@server ~]# curl 192.168.160.137:5111
5111
[root@server ~]# curl 192.168.160.137:5222
5222
实验7(基于不同域名的虚拟主机网站)
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx
- 第二步:创建两个域名网页
[root@server ~]# mkdir -p /www/guan
[root@server ~]# mkdir -p /www/test
[root@server ~]# echo "guan" > /www/guan/index.html
[root@server ~]# echo "test" > /www/test/index.html
- 第三步:修改配置文件
[root@server ~]# vim /etc/hosts # 在下面添加
192.168.160.137 www.guan.com
192.168.160.137 www.test.com[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen 80;server_name www.test.com;root /www/test;}server {listen 80;server_name www.guan.com;root /www/guan;}
- 第四步:重启测试
[root@server ~]# systemctl restart nginx
# 或在window端输入www.guan.com测试
[root@server ~]# curl www.guan.com
guan
[root@server ~]# curl www.test.com
test
apache
实验1(快速建站)
- 快速建站(apache)
[root@server ~]# yum install httpd -y[root@server ~]# echo "welcome to csdn" > /var/www/html/index.html[root@server ~]# ls /var/www/html
index.html[root@server ~]# systemctl restart httpd[root@server ~]# curl 192.168.160.137
welcome to csdn
实验2(更换默认网页目录)
- 更换默认网页目录(apache)
- 第一步:准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install httpd -y[root@server ~]# systemctl start httpd[root@server ~]# systemctl enable httpd[root@server ~]# yum remove nginx -y # 用于删除nginx
- 第二步:新建网页存储目录/web,使用xftp将网页数据上传到/web内
[root@server ~]# mkdir /web
[root@server ~]# cd /web[root@server ~]# ls /web
css img index.html js
- 第三步:修改主配置文件
[root@server web1]# vim /etc/httpd/conf/httpd.conf
# 第121行修改为真实的网页存储目录
DocumentRoot "/web"
# 第126行修改网页存储目录的访问权限
<Directory "/web"> AllowOverride None# Allow open access:Require all granted
</Directory>
- 第四步:重启服务器并测试
[root@server ~]# systemctl restart httpd
# windows端打开浏览器输入服务器的地址进行测试
实验3(身份验证登录网页)
- 搭建一个个人用户主页功能网站,实现通过身份验证功能来访问数据
- 如果想在系统中为每一位用户建立一个独立的网站,通常使用基于虚拟主机的功能来创建部署多个网站,但这个工作会让管理者苦不堪言,尤其是用户数据量很大的情况时,而且用户自行管理网站时,还会碰到权限限制,需要为此做很多额外的工作,其实,httpd服务程序提供的个人主页功能可以完全胜任此工作,该功能可以让系统内所有用户在自己的家目录中管理个人网站,且访问也非常容易
- 第一步:准备工作
# 恢复快照[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install httpd -y[root@server ~]# systemctl start httpd[root@server ~]# systemctl enable httpd
- 第二步:编辑httpd目录中的用户主页配置文件(不是httpd.conf)
[root@server ~]# vim /etc/httpd/conf.d/userdir.conf
#UserDir disabled # 插入#,注释掉,表示开启用户主页功能
UserDir public_html # 去掉#,启动网站存储数据的默认目录,路径:/home/账户名/public_html
- 第三步:新建账户,设置权限
[root@server ~]# useradd andy
[root@server ~]# passwd andy # 密码123456[root@server ~]# useradd jenny
[root@server ~]# passwd jenny # 密码65421
[root@server ~]# id andy
用户id=1004(andy) 组id=1004(andy) 组=1004(andy)
[root@server ~]# id jenny
用户id=1003(jenny) 组id=1003(jenny) 组=1003(jenny)
[root@server ~]# mkdir /home/andy/public_html
[root@server ~]# cd /home/andy/public_html
[root@server public_html]# ls
test[root@server public_html]# cd
[root@server ~]# mkdir /home/jenny/public_html
[root@server ~]# cd /home/jenny/public_html
[root@server public_html]# ls
test
[root@server ~]$ chmod -Rf 755 /home/jenny
[root@server ~]$ chmod -Rf 755 /home/andy
- 第四步:重启服务并测试
[root@server andy]# systemctl restart httpd
# 在window浏览器中输入:
# 192.168.160.137/~jenny
# 192.168.160.137/~andy
下面的这个图是错误的,在/home/*/public_html 下传输文件时,不要再有文件,应直接是index.html文件
- 第五步:增加密码访问控制
[root@server ~]# htpasswd -c /etc/httpd/passwd andy
New password:
Re-type new password:
Adding password for user andy# 分析:# htpasswd:生成密码数据的命令# -c:表示第一次生成会创建存储密码加密密文的存储文本,第二次创建时就不能增加-c选项,否则存储密码密文文件内容会被覆盖# andy:需要验证密码登录的账户[root@server ~]# cat /etc/httpd/passwd
andy:$apr1$PZxZc7OD$vWsqZOqxpbXBgsZxvQs7i0
[root@server ~]# htpasswd /etc/httpd/passwd jenny
New password:
Re-type new password:
Adding password for user jenny[root@server ~]# cat /etc/httpd/passwd
andy:$apr1$PZxZc7OD$vWsqZOqxpbXBgsZxvQs7i0
jenny:$apr1$fW2KOC6b$BvukKHN9CPaMuG7SmHFli/
- 第六步:编辑个人主页配置文件,设置访问控制策略
[root@server ~]# vim /etc/httpd/conf.d/userdir.conf
<Directory "/home/andy/public_html"> # 设置andy账户目录的区域配置authuserfile "/etc/httpd/passwd" # 设置验证密码的存储文件位置authname "My privately" # 登录时的提示信息,可能不显示authtype basic # 加密模式require user andy # 需要验证密码的账户名
</directory><Directory "/home/jenny/public_html">authuserfile "/etc/httpd/passwd"authname "My privately"authtype basicrequire user jenny
</Directory>
- 第七步:重启服务并测试
[root@server andy]# systemctl restart httpd
# 在window浏览器中输入:
# 192.168.160.137/~jenny
# 192.168.160.137/~andy
实验4(密码验证登录网页)
- 通过主配置文件实现密码验证访问网站
- 第一步:准备工作
# 恢复快照
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# yum install httpd -y[root@server ~]# systemctl start httpd[root@server ~]# systemctl enable httpd
- 第二步:新建账户设置密码
[root@server ~]# useradd t1
[root@server ~]# passwd t1 # 密码123456
更改用户 t1 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。[root@server ~]# useradd t2
[root@server ~]# passwd t2 # 密码654321
更改用户 t2 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
- 第三步:搭建网站,设置密码访问控制
[root@server ~]# mkdir -p /www/test[root@server ~]# htpasswd -c /etc/httpd/passwdtest t1 # 密码123456
New password:
Re-type new password:
Adding password for user t1[root@server ~]# htpasswd /etc/httpd/passwdtest t2 # 密码654321
New password:
Re-type new password:
Adding password for user t2[root@server ~]# vim /etc/httpd/conf/httpd.conf
121 DocumentRoot "/www/test"126 <Directory "/www/test">133 <Directory "/www/test">
134 authuserfile "/etc/httpd/passwdtest"
135 authname "My privately"
136 authtype "basic"
137 require user t1 t2
163 </Directory>
- 第四步:重启服务,测试
[root@server ~]# systemctl restart httpd
# 浏览器中输入ip地址后输入账户及密码即可登录