1、rewrite中的flag
跳转
redirect 302 临时跳转 旧网站无影响,新网站无排名
permanent 301 永久跳转 新跳转网站有排名,旧网站排名清空
http ---> https 302 浏览器不会记住新域名
http ---> https 301 浏览器会记录新域名
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
当rewrite规则遇到break后,本location{}与其他location{}的所有rewrite/return规则都不再执行。
当rewrite规则遇到last后,本location{}里后续rewrite/return规则不执行,但重写后的url再次从头开始执行所有规则,哪个匹配执行哪个。
2、什么是Https
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。
这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面
#HTTP和HTTPS的区别:
1、安全性不同。HTTP是超文本传输协议,信息是明文传输的。HTTPS是具有安全性的ssl证书加密的传输协议。所以HTTPS比HTTP更安全
2、默认端口不同。HTTP的默认端口是80,HTTPS的默认端口是443。
3、协议不同。HTTP是无状态的协议,而HTTPS是由ssl+HTTP构建的可进行加密传输、身份认证的网络协议。
4、部署的成本不同。HTTP是免费的,HTTPS是需要证书的,一般免费证书很少,需要交费。所以HTTPS的成本相对会更高。
3、为什么要使用Https
#HTTP存在的几点不足:
通信使用明文,内容可能会被窃听;不验证通信方的身份,因此有可能遭遇伪装;无法证明报文的完整性,有可能已遭篡改。
#《网络安全法》的相关规定。
#越来越多场景的强制性要求。
#使用HTTPS的原因:
#1、提升用户的信任度
使用HTTPS加密访问的网站一般为大型网站,例如:淘宝、京东等。如果是博客类建议使用SSL证书,对用户体验上会比较安全,避免用户信息泄露。
#2、加密传输
HTTPS具有加密传输通道,有效保障隐私数据密文传输,截取也无法解密。HTTP明文传输,没有SSL加密通道,任何人都可以轻松截取或篡改机密数据。
#3、有利于SEO优化
百度搜索引擎目前会优先收录HTTPS网站。HTTPS协议分为两种,一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
#4、防止山寨、镜像网站
防范钓鱼电子邮件一般含有恶意链接,引诱没有用户访问克隆网站。
4、模拟不使用Https的劫持和篡改?
自行百度吧
5、Https通讯是如何确定双方的身份?
通过权机构来验证双方身份---CA,简单的说,我们需要实现http协议,需要上CA机构申请证书
公钥和私钥就是俗称的不对称加密方式。公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对外公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,则必须用另一个密钥才能解密。比如用公钥加密的数据就必须用私钥才能解密,如果用私钥进行加密也必须用公钥才能解密,否则将无法成功解密。
6、Https证书类型、购买指南、注意事项?
域名型(DV)SSL证书、企业型(OV)SSL证书、增强型(EV)SSL证书,具体请见SSL证书详解——提升信息安全
7、如何实现单台Https、又如何实现集群Https? (待会解决)
8、如何将Https集成集群架构实现全站Https? (待会解决)
9、有一个url地址不希望走https,其他正常走https? (待会解决)
10、HTTPS证书购买指南 yangdan.com
保护1个域名 www docs.yangdan.com
保护5个域名 www images cdn test m docs.oldxu.com www.yangdan.com iamges.yangdan.com
通配符域名 *.oldboy.com
1套证书
保护所有的域名
11、HTTPS注意事项
Https不支持续费,证书到期需重新申请新并进行替换。
Https不支持三级域名解析,如 test.m.oldboy.com。
Https显示绿色,说明整个网站的url都是https的,并且都是安全的。
Https显示黄色,说明网站代码中有部分URL地址是http不安全协议的。
Https显示红色,要么证书是假的,要么证书已经过期。
[root@Nginx ~]
[root@Nginx ~]
[root@Nginx ~]
openssl req -days 36500 -x509 \
-sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
[root@web01 conf.d]
server {
listen 443 ssl;
server_name s.yangdan.com;
root /code;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location / {
index index.html;
}
}
server {
listen 80;
server_name s.yangdan.com;
return 302 https://$http_host$request_uri;
}
[root@lb01 conf.d]
upstream webs {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
server_name s.oldxu.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
server {
listen 80;
server_name s.yangdan.com;
return 302 https://$http_host$request_uri;
}
-------------------------------------------------------------------------
[root@lb01 conf.d]
upstream blog {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
server_name blog.yangdan.com;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location / {
proxy_pass http://blog;
proxy_next_upstream error timeout http_500 http_502 http_503;
include proxy_params;
}
}
server {
listen 80;
server_name blog.yangdan.com;
return 302 https://$http_host$request_uri;
}
--------------------------------------------------------------------------------
[root@web02 conf.d]
server {
listen 80;
server_name blog.yangdan.com;
root /code/wordpress;
client_max_body_size 100m;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi_params;
}
}
12、需求: 部分URL走https,部分不走https?
s.yangdan.com/login ---> https
[root@lb01 conf.d]
upstream webs {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
server_name s.yangdan.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
server {
listen 80;
server_name s.yangdan.com;
if ($request_uri ~* "^/login") {
return 302 https://$http_host$request_uri;
}
location / {
proxy_pass http://webs;
include proxy_params;
}
}
13、需求: 当用户请求s.oldxu.com/abc时走http,其他的所有都走https?
s.yangdan.com/ ---> https
s.yangdan.com/abc ---> http
[root@lb01 conf.d]
upstream webs {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 443 ssl;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
server_name s.oldxu.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
server {
listen 80;
server_name s.yangdan.com;
if ($request_uri !~* "^/abc") {
return 302 https://$http_host$request_uri;
}
location / {
proxy_pass http://webs;
include proxy_params;
}
}
14、https优化相关的参数?
server {
listen 443 ssl;
server_name nginx.bjstack.com;
ssl_certificate ssl_key/1524377920931.pem;
ssl_certificate_key ssl_key/1524377920931.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
l ocation / {
root /soft/code;
index index.html index.htm;
}
}
server {
listen 80;
server_name nginx.bjstack.com;
return 302 https://$server_name$request_uri;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器