网络服务综合练习:在linux上使用nginx部署web服务,附命令及全解

实验环境:一台linux(openeuler)虚拟机。 

网站需求:

1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!!

2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/data网站访问教学资料网站,www.openlab.com/money网站访问缴费网站,基于www.openlab.com/student访问学生信息网站。

3.要求

(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。

(2)访问缴费网站实现数据加密基于https访问。

第一步:准备工作

1、下载web服务部署所需要的软件以及启用nginx

[root@master ~]# yum  install  httpd-tools  nginx  mod_ssl   -y

开启nginx服务,以下命令可以一次性开启和设置开机自启动。 

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

然后查询nginx进程和端口确保nginx工作状态正常。

[root@master ~]# ps  -ef  |  grep  nginx
root        2378       1  0 12:08 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx       2379    2378  0 12:08 ?        00:00:00 nginx: worker process
nginx       2380    2378  0 12:08 ?        00:00:00 nginx: worker process
root        2383    2002  0 12:09 pts/0    00:00:00 grep --color=auto nginx

[root@master ~]# netstat  -lntp  |  grep  nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2378/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      2378/nginx: master  

2、检查和关闭防火墙和selinux防止拦截

检查防火墙状态

 使用该命令检查防火墙状态,确保为dead,否则需要使用以下命令关掉。

[root@master ~]# systemctl  stop  firewalld    临时关闭防火墙
[root@master ~]# systemctl  disable  firewalld    永久关闭防火墙,防止开机自启动

检查selinux状态

使用该命令查看,若为disabled即可,若不为该状态需要使用如下命令打开配置文件并且更改SELINUX参数为disabled。

[root@master ~]# vim  /etc/selinux/config 

3、创建存放网页文件的目录并输入网页内容。

在根目录下建立一个www目录下的openlab目录,专门存放本次实验需要存放的网页数据。

[root@master ~]# mkdir   -p  /www/openlab
[root@master ~]# cd  /www/openlab/
[root@master openlab]# mkdir  student  data  money
[root@master openlab]# cd

创建好目录后开始往里面添加网页的源码文件。本次实验仅采用非常简单的一句话表示对应网页。

[root@master ~]# echo  "student"  >  /www/openlab/student/index.html
[root@master ~]# echo  "money"  >  /www/openlab/money/index.html
[root@master ~]# echo  "data"  >  /www/openlab/data/index.html
[root@master ~]# echo  "Welcome  to  openlab"  >  /www/openlab/index.html

 最后目录结构如下所示。

4、修改windows的本地域名解析文件使自己电脑的浏览器可以访问域名

打开C:\Windows\System32\drivers\etc路径下的hosts文件,选择用记事本打开,然后添加linux虚拟机的ip地址和域名到底部并保存。

虚拟机的ip地址自行通过ip  a命令查询。

如果保存不成功!说明权限不够,需要右键该文件选择属性,打开后选择安全,选择编辑,选中当前登录的用户并且将允许列的勾全部打上然后应用急啊确定。如下图所示。

第二步:创建www.openlab.com主网站

打开nginx的配置文件并且配置主网站

[root@master ~]# vim  /etc/nginx/nginx.conf

进入文档后按下shift+:,输入set nu可以开启行号显示,然后修改41和42行如下,server_name为主网站域名,root为保存网页文件的目录。

然后保存退出后重启nginx服务(后续每次改动nginx的配置文件都需要重启服务,如果重启失败说明配置文件出现语法错误,可以使用nginx  -t命令查看哪一行出现了错误)

然后在浏览器输入主网站验证配置是否正确。

出现该界面说明主网站配置成功。

第三步:创建www.openlab.com/data数据子网站

重新打开配置文件并且配置,在server参数中添加location  /data并且在其内部添加网页文件的绝对路径和支持的html和htm格式,然后保存退出并且重启服务,然后上浏览器检查。

        location  /data{
                alias  /www/openlab/data;
                index  index.html  index.htm;
        }

可见主网站的data子网站也已经配置成功。

第四步:创建www.openlab.com/student学生子网站

由于该子网站仅允许song和tian这两个用户登录,所以需要先添加用户。

添加完账户后使用如下命令查看是否创建成功

可以看见两个账户已经被添加说明创建成功了。

然后使用以下命令给两个账户登录网站配置一个密码(注:网站登录的密码和用户登录的密码是两码事

[root@master ~]# htpasswd  -c  /etc/nginx/password  song
New password: 
Re-type new password: 
Adding password for user song

注:-c参数代表首次创建存储用户密码的password文件,仅在首次使用该命令是添加该参数,在后续使用该命令时不再添加,否则会造成存储的密码信息的覆盖。

两个账户都修改完密码后检查password文件,确保两个账户的信息都已经存储。

可见信息已经成功添加,开始进行nginx配置,在lcoation  /data下方继续添加location  /student并且编辑内容如下。

        location  /student{
                alias  /www/openlab/student;
                index  index.html  index.htm;
                auth_basic  "Please  input  password";
                auth_basic_user_file  /etc/nginx/password;
        }

配置完成后保存退出,然后重启nginx服务。然后在浏览器访问验证是否配置正确。

可见需要账户登录才能访问该网页,分别输入song和tian账户验证。

可见两个账户均可以登录。学生端子网站配置完成。

第五步:创建www.openlab.com/money缴费子网站。

由于该子网站需要实现加密数据基于https访问,所以需要制作密钥和证书。

[root@master ~]# openssl  genrsa  -aes128  2048  >  /www/openlab/money/money.key
Generating RSA private key, 2048 bit long modulus (2 primes)
................................+++++
..........................+++++
e is 65537 (0x010001)
Enter pass phrase:
Verifying - Enter pass phrase:

创建完密钥并且设置好密码后,开始制作证书。

输入如下命令后需要输入一遍密钥的密码,然后需要输入以下七个参数,分别是国家代码、省份、城市、公司、部门、主机名、邮箱。

输入完成后证书即制作完成。

然后需要将原本加密的密钥复制一份副本,然后用该副本重新制作一份没有密码的密钥(有密码的密钥会导致nginx配置文件出错而无法启动nginx服务)

[root@master ~]# cp  /www/openlab/money/money.key  /www/openlab/money/money.key.org
[root@master ~]# openssl  rsa  -in  /www/openlab/money/money.key.org  -out  /www/openlab/money/money.key
Enter pass phrase for /www/openlab/money/money.key.org:
writing RSA key

执行完该命令后即创建了一个没有密码的密钥。然后开始配置nginx的配置文件。

需要在上一个server的外面的下方添加新的server参数并且配置为https,并且设置对应证书和密钥。

    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  www.openlab.com;
        location  /money{
                alias  /www/openlab/money;
                index  index.html  index.htm;
        }
        ssl_certificate  "/www/openlab/money/money.crt";
        ssl_certificate_key  "/www/openlab/money/money.key";
    }

配置完成后重启服务并进去浏览器验证是否配置成功。

出现该界面是由于该证书是我们自己做的,我们只需要点击高级然后继续访问就可以看见如下界面。

至此本次实验圆满完成,成功的实现了www.openlab.com主网站和其下三个子网站的搭建。

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值