Nginx虚拟主机及加密站点

本文档详细介绍了如何在Linux环境下配置Nginx虚拟主机,包括创建和修改虚拟主机配置,重载配置文件,以及创建测试页面。此外,还讲解了如何搭建安全加密的HTTPS站点,涉及SSL证书的生成、配置修改以及服务的重启和测试。通过这些步骤,读者能够学会在实际环境中为网站提供安全的加密服务。
摘要由CSDN通过智能技术生成

环境准备

本实验适用上篇文章中所部署好nginx的Linux主机

nginx配置虚拟主机

打开nginx主配置文件在34~39行添加以下代码行(配置文件:/usr/local/nginx/conf/nginx.conf)

server {
listen 80;     //监听端口号
server_name www.b.com;     //域名,默认的虚拟主机改成www.a.com
root html_b;     //存放网页的目录 
index index.html;     //默认页名字
}

更改原有虚拟主机

http {
server { //配置文件中自带虚拟主机
listen 80;
server_name www.a.com;
root html;
index index.html;
}

重载配置文件

/usr/local/nginx/sbin/nginx  -s  reload   //之后重新加载配置文件,服务必须是开启状态

创建测试页面

mkdir /usr/local/nginx/html_b     //创建b网站的目录
echo "nginx-A~~~"  > /usr/local/nginx/html/index.html      //创建a网站测试页
echo "nginx-B~~~"  > /usr/local/nginx/html_b/index.html    //创建b网站测试页
vim  /etc/hosts    //修改hosts文件添加ip和域名的映射关系
192.168.99.5  www.a.com  www.b.com
curl  www.a.com     //检测a网站或b网站都可以看到页面
nginx-A~~~
curl www.b.com
nginx-B~~~

自此虚拟主机搭建完成

加密站点

搭建安全网站

对称算法 AES DES 单机数据加密 使用相同字符串加密和解密
非对称算法 RSA DSA 网络数据加密 利用公钥(锁)加密,私钥(钥匙)解密
信息摘要 md5 sha256 数据校验

修改配置,实现安全加密网站

vim conf/nginx.conf    //修改大概103~120行,如果配置恢复了,就找98~115行
    server {			//此处的虚拟主机自带ssl安全加密功能,将其范围的注释取消即可
        listen       443 ssl;
        server_name  localhost;      
        ssl_certificate      cert.pem;    //证书,包含公钥
        ssl_certificate_key  cert.key;     //私钥
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   https;     //这里修改页面存储目录
            index  index.html index.htm;
        }
}

mkdir /usr/local/nginx/https    //创建安全网站的目录
echo "https~~~~ "  > /usr/local/nginx/https/index.html     //创建安全网站的页面

创建私钥与证书

[root@proxy nginx]# pwd
/usr/local/nginx
[root@proxy nginx]# openssl genrsa > conf/cert.key   //创建私钥
[root@proxy nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem   
//创建证书,证书中包含公钥,生成过程会询问诸如你在哪个国家之类
的问题,可以随意回答,但要走完全过程
Country Name (2 letter code) [XX]:dc    国家名
State or Province Name (full name) []:dc    省份
Locality Name (eg, city) [Default City]:dc     城市
Organization Name (eg, company) [Default Company Ltd]:dc    公司
Organizational Unit Name (eg, section) []:dc    部门
Common Name (eg, your name or your server's hostname) []:dc    服务器名称
Email Address []:dc@dc.com     电子邮件

启动服务并测试

[root@proxy nginx]# sbin/nginx    //服务没开的话开服务
[root@proxy nginx]# sbin/nginx -s reload    //已经开了的话重加载配置
[root@proxy nginx]# curl  -k  https://192.168.99.5     //检验,-k是忽略风险
https~~~~      //看到这个内容就说明实验成功
[root@proxy nginx]# systemctl stop firewalld    //如果用真机的火狐浏览器测试需要
关闭防火墙,然后输入https://192.168.99.5 

使用真机访问测试时,因为没有配置DNS解析服务,所以如果想要看到效果需要修改本机hosts文件
Linux修改hosts文件: /etc/hosts
Windows修改hosts文件
C:\Windows\System32\drivers\etc\hosts 右键---属性---安全---编辑---users---完全控制打钩 然后用文本打开hosts,在最后添加

### 回答1: Nginx虚拟主机有以下几种实现方式: 1. 基于不同的Server Name配置虚拟主机:在Nginx的配置文件中可以针对不同的域名或主机名配置不同的虚拟主机。 2. 基于不同的IP地址配置虚拟主机:在同一台服务器上分配多个IP地址,并在Nginx的配置文件中为不同的IP地址配置不同的虚拟主机。 3. 基于不同的端口配置虚拟主机:在同一台服务器上为Nginx分配多个端口,并在Nginx的配置文件中为不同的端口配置不同的虚拟主机。 4. 基于不同的目录配置虚拟主机:在同一个域名或IP地址下,可以根据不同的URL路径配置不同的虚拟主机,实现不同的站点或应用程序。 这些实现方式可以单独或组合使用,以满足不同的需求和场景。 ### 回答2: Nginx虚拟主机有以下几种实现方式: 1. 基于端口的虚拟主机:通过监听不同的端口来区分不同的域名,并将请求转发到相应的虚拟主机。例如,可以将80端口用于一个域名的虚拟主机,将8080端口用于另一个域名的虚拟主机。 2. 基于IP的虚拟主机:通过为每个域名配置独立的IP地址来实现虚拟主机。每个IP地址对应一个域名,当收到请求时,根据IP地址将请求分发到对应的虚拟主机。 3. 基于域名的虚拟主机:通过配置不同的域名来区分虚拟主机。当接收到请求时,Nginx会解析请求的域名,并根据域名将请求转发到相应的虚拟主机。 4. 基于正则表达式的虚拟主机Nginx支持使用正则表达式对请求的域名进行匹配,并根据匹配的规则将请求转发到相应的虚拟主机。这种方式非常灵活,可以根据需要配置各种复杂的规则。 无论是哪种方式,Nginx通过解析请求的域名或端口来实现虚拟主机的区分,然后将请求转发到相应的虚拟主机。通过这种方式,可以在同一个服务器上托管多个不同域名的网站,提高服务器的资源利用率。 ### 回答3: nginx虚拟主机有两种实现方式:基于IP地址和基于域名。 首先是基于IP地址的虚拟主机。这种方式通过为每个虚拟主机配置一个独立的IP地址来实现。当请求到达服务器时,nginx会根据请求的IP地址来匹配对应的虚拟主机配置。这种方式的优点是可以直接通过IP地址来访问指定的虚拟主机,适用于需要绑定不同IP地址的场景。但缺点是IP地址有限,难以满足大规模的需求。 其次是基于域名的虚拟主机。这种方式通过配置不同的域名来实现。当请求到达服务器时,nginx会根据请求的域名来进行匹配。可以通过配置多个虚拟主机配置文件,每个文件中指定不同的域名和相关设置。这种方式的优点是可以方便地添加、修改和删除虚拟主机,并且可以在一个IP地址上托管多个域名。同时,还可以通过配置SSL证书实现HTTPS加密传输。这是应用最广泛的虚拟主机实现方式。 总结起来,nginx虚拟主机可以通过基于IP地址或者基于域名的方式来实现。根据具体需求选择合适的方式,可以更好地满足不同的业务需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭不戳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值