“这是我参与更文挑战的第20天,活动详情查看: 更文挑战”
上一篇介绍了Nginx基础应用实战第二篇,接下来介绍Nginx基础应用实战第三篇。
Nginx服务器上安装证书SSL
下载SSL证书
下载各个平台云(阿里云、腾讯云、百度云等)上申请的SSL证书
Nginx基础应用实战第二篇中有介绍怎么申请SSL证书及下载。
下载SSL模块
安装SSL模块
yum install openssl openssl-devel
复制代码
检测安装是否成功
openssl version -a
复制代码
Nginx重新编译
Nginx重新编译,增加ssl模块
- 备份之前的nginx
- ./configure –with-http_stub_status_module –with-http_ssl_module
- 执行make,make执行完之后,不要执行install
- 替换文件
- 上传ssl证书文件到Nginx中指定的目录下/usr/local/nginx/conf/cert
- xxx.key
- xxx.pem
- nginx.conf配置https
server {
listen 80;
server_name xxoo.cn;
rewrite ^(.*) https://$server_name$request_uri permanent;
}
server {
listen 443 ssl;
server_name xxoo.cn;
ssl_certificate cert/xxx.pem;
ssl_certificate_key cert/xxx.key;
ssl_session_timeout 5m;
ssl_ciphers xxxxxxxxxxxxxx;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /mzoe/moe.com/;
index index.html index.htm;
}
}
复制代码
- 启动Nginx
- 访问https
动静分离
配置反向代理
location / {
proxy_pass http://127.0.0.1:8080;
root html;
index index.html index.htm;
}
复制代码
配置location
location /css {
root /usr/local/nginx/static;
index index.html index.htm;
}
location /images {
root /usr/local/nginx/static;
index index.html index.htm;
}
location /js {
root /usr/local/nginx/static;
index index.html index.htm;
}
复制代码
location配置规则
location前缀
-
没有前缀:匹配以指定模式开头的location
-
=(精准匹配,不是以指定模式开头)
-
~(正则匹配,区分大小写)
-
~*(正则匹配,不区分大小写)
-
^~(非正则匹配,匹配以指定模式开头的location)
location匹配顺序
-
多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
-
普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
-
当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
-
所有类型location存在时,”=“匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)
例如可以将上边的静态资源改下:
location ~*/(css|images|js) {
root /usr/local/nginx/static;
index index.html index.htm;
}
复制代码
URL重写
rewrite语法格式及参数语法
rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,
重定向到replacement,结尾是flag标记。
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 flag标记
关键字:其中关键字error_log不能改变
正则:perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记
rewrite参数的标签段位置:
server,location,if
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
rewrite ^/account/login.html$ /account/login last;
rewrite ^/account/(.+).html$ /account/list?pageNum=$1 last;
复制代码
短网址是如何实现的?
最基本的可以利用rewrite重写后,指定访问的地址,从数据库中查询 key=value
key为替换后的key,根据key查询value,value就是短连接真是的地址,然后重定向跳转。
总结
本篇介绍了怎么把SSL证书安装到Nginx中,使Nginx代理支持HTTPS。接着介绍了Nginx怎么配置动静分离、URL重写的规则等。
欢迎大家关注公众号(MarkZoe)互相学习、互相交流。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END