一.Web服务器的简介
Web网络服务也叫WWW(World Wide Web 全球信息广播)万维网服务,一般是指能够让用户通过浏览器访问到互联网中文档等资源的服务
Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户。
二.nginx的简介
Nginx是一款轻量级HTTP服务器,也是一款邮箱代理服务器,同时具备反向代理、通用TCP/UDP代理的功能。
Nginx可以运行在x86、ARM等多种平台上,同时支持Linux、Windows等主流的操作系统
2.1nginx的下载
[root@di ~]# yum install nginx -y
2.2nginx的开启
[root@di ~]# systemctl start nginx
三.搭建网站
3.1要求
- 组建多个子目录网站<www.openlab.com>,该网站有2个子目录<www.openlab.com/file>和<www.openlab.com/ftp>,file数据使用http读取,ftp数据使用https读取
3.2 新建网页目录并建立网页
[root@zhangjiajie ~]# mkdir -p /www/fire
[root@zhangjiajie ~]# mkdir -p /www/ftp
[root@zhangjiajie ~]# echo "ftp ftp" > /www/ftp/index.htm1
[root@zhangjiajie ~]# echo "fire fire" > /www/fire/index.htm1
3.3建立本地hosts域名映射
[root@zhangjiajie ~]# vim /etc/hosts
3.4创建fire网站(http://www.openlab.com/fire)
[root@zhangjiajie ~]# vim /etc/nginx/nginx.conf

注:只改server下面的东西
1.server_name
含义:定义这个网站的域名。
作用 :当用户通过 www.openlab.com 访问服务器时,Nginx 会匹配到这个 server 块,用下面的规则处理请求。
2.location 定义一个路径匹配规则 ,只对 URL 中 /fire 开头的请求生效
3.alias
核心作用 :路径别名映射,把请求的 URL 路径映射到服务器本地的文件路径。
规则 : 当用户访问 www.openlab.com/fire/xxx 时,Nginx 会去服务器的 /www/fire/xxx 目录下找文件。
注意 :alias 后面的路径末尾必须带 / ,否则会出问题。 比如你写 alias /www/fire;,请求 /fire/index.html 会变成 /www/fireindex.html,直接 404。
4.index
含义:定义默认首页文件。
- 作用:当用户只访问目录(比如
www.openlab.com/fire/,没写具体文件名),Nginx 会按顺序查找文件:- 先找
/www/fire/index.html - 找不到的话,再找
/www/fire/index.htm找到哪个就返回哪个给浏览器
- 先找

3.5创建ftp网站(https://www.openlab.com/ftp)
制作私钥:
[root@zhangjiajie ~]# openssl genrsa -aes128 2048 > /etc/nginx/ftp.key
Generating RSA private key, 2048 bit long modulus (2 primes)
.....................................................+++++
..................................+++++
e is 65537 (0x010001)
Enter pass phrase: #输入私钥密码123456
Verifying - Enter pass phrase: #再次输入私钥密码123456
制作证书:
[root@zhangjiajie ~]# openssl req -utf8 -new -key /etc/nginx/ftp.key -x509 -days 365 -out /etc/nginx/ftp.crt
Enter pass phrase for /etc/nginx/ftp.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) []:xian #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:oupeng #公司
Organizational Unit Name (eg, section) []:node #部门
Common Name (e.g. server FQDN or YOUR name) []:1314520.com #主机名
Email Address []:5201314.com #邮箱
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令
[root@zhangjiajie ~]# cd /etc/nginx/
[root@zhangjiajie nginx]# cp ftp.key ftp.key.org
[root@zhangjiajie nginx]# openssl rsa -in ftp.key.org -out ftp.key
Enter pass phrase for ftp.key.org: #输入私钥密码
writing RSA key
编辑配置文件(给第一个server的下面再加一个server,内容如下)

1. listen 443 ssl http2;
443:HTTPS 协议的默认端口,浏览器访问https://网站时默认走这个端口。ssl:告诉 Nginx,这个端口启用 SSL/TLS 加密(也就是 HTTPS),不再是明文传输的 HTTP。http2:启用 HTTP/2 协议,比 HTTP/1.1 更快,支持多路复用、头部压缩等优化,加载网页速度更快。
2. server_name www.openlab.com;
和上一段 HTTP 配置的作用一样: 当用户通过 https://www.openlab.com 访问时,Nginx 会匹配到这个 server 块,用下面的规则处理请求。
3. location /ftp { ... }
匹配所有以 /ftp 开头的 URL,比如 https://www.openlab.com/ftp、https://www.openlab.com/ftp/index.html。
alias /www/ftp/;:把 /ftp 路径映射到服务器本地的 /www/ftp/ 目录。
index index.html index.htm;:没指定文件名时,按顺序返回 index.html 或 index.htm 作为默认首页
server_name www.openlab.com;和上一段 HTTP 配置的作用一样: 当用户通过 https://www.openlab.com 访问时,Nginx 会匹配到这个 server 块,用下面的规则处理请求。
4. ssl_certificate "/etc/nginx/ftp.crt";
这是你的 SSL 公钥证书文件 (.crt/.pem 格式),由 CA 机构签发(或自签发)。
浏览器会用这个证书验证网站身份,确认连接的是你配置的服务器,防止中间人攻击。
路径是 /etc/nginx/ftp.crt,需要提前把证书文件放到这个位置。
5. ssl_certificate_key "/etc/nginx/ftp.key";
这是你的 SSL 私钥文件 (.key 格式),和上面的公钥证书是一对。
服务器用私钥来解密客户端的加密请求,只有你自己持有,绝对不能泄露。
路径是 /etc/nginx/ftp.key,权限建议设置为 600,防止其他用户读取。
重启服务
[root@server ~]# systemctl restart nginx
检验
# 输入www.openlab.com/file
# 输入https://www.openlab.com/ftp,点击高级->接受风险并继续

注:如果网站不能访问,可能是本地域名映射的问题,解决办法如下:
1.找寻文件位置
"C:\Windows\System32\drivers\etc\hosts"

2.如若保存不了,解决方法如下


修改一下就保存好了

