ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx进阶之路——基础应用实战

2021-06-27 19:51:49  阅读:151  来源: 互联网

标签:实战 index 匹配 进阶 ssl rewrite Nginx 正则 location


 

19da8f5e0a1b1ab3bebc5c9039a60233.jpeg

Nginx服务器上安装证书SSL

下载SSL证书

下载各个平台云(阿里云、腾讯云、百度云等)上申请的SSL证书

下载SSL模块

安装SSL模块

yum install openssl openssl-devel

检测安装是否成功

openssl version -a

Nginx重新编译

Nginx重新编译,增加ssl模块

  1. 备份之前的nginx
  2. ./configure --with-http_stub_status_module --with-http_ssl_module
  3. 执行make,make执行完之后,不要执行install
  4. 替换文件
  5. 上传ssl证书文件到Nginx中指定的目录下/usr/local/nginx/conf/cert
    • xxx.key
    • xxx.pem
  6. 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;
	}
}
  1. 启动Nginx
  2. 访问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就是短连接真是的地址,然后重定向跳转。

最后

最近我整理了整套《JAVA核心知识点总结》,说实话 ,作为一名Java程序员,不论你需不需要面试都应该好好看下这份资料。拿到手总是不亏的~我的不少粉丝也因此拿到腾讯字节快手等公司的Offer

Java进阶之路群,找管理员获取哦-!

25ed0691d5c3d25014fdc3ebf375ef64.png

2e5d497c2e3d8bada682d8ace436822a.png

标签:实战,index,匹配,进阶,ssl,rewrite,Nginx,正则,location
来源: https://blog.51cto.com/u_15219956/2950045

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有