2019独角兽企业重金招聘Python工程师标准>>>

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_port - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;#负载均衡池upstream swagger-servers{  server 10.0.3.23:7080 max_fails=2 fail_timeout=2 weight=1;server 10.0.3.23:7090 max_fails=2 fail_timeout=2 weight=1;}server {listen       80;  # 监听端口server_name  10.0.3.23; #会根据路径的头部匹配#charset koi8-r;access_log  logs/host.access.log  main;#匹配所有location / {root   html;index  index.html index.htm;}location ~ /.ht{deny all;# 禁止访问}#返回jsonlocation ~ ^/get_json {default_type application/json;return 200 '{"status":"success","result":"nginx json"}';}#返回文本location ~ ^/get_text {default_type text/html;return 200 'This is text!';  }   #返回文本,指定头部location ~ ^/get_ch {default_type text/html;add_header Content-Type 'text/html; charset=utf-8';return 200 '我爱中国!';  }error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}#~为区分大小写,~*为不区分大小写。location ~ ^/(webjars|swagger-ui.html|csrf|v2){  # 以webjars、swagger-ui.html 、csrf、v2开头的,跳转到proxy_pass  http://swagger-servers; #deny 127.0.0.1;  #拒绝的ip# allow 172.18.5.54; #允许的ip   }#location ~ ^/swagger-ui.html {# #   proxy_pass  http://swagger-servers; #   proxy_set_header Host $host:$server_port; #}location ~ ^/swagger/{proxy_pass http://10.0.3.23:7080;#是可以访问到http://10.0.3.23/swagger-ui.html  端口丢失}#跳转到一个页面location ~ ^/eureka {# proxy_pass  http://10.0.3.23:7000; #return  http://10.0.3.23:7000; #会带7000端口号}#获取公共参数数据location ~ ^/param{default_type text/html;return 200 ”$remote_addr:$remote_port:$remote_user:$content_length:$content_type:$document_root$http_user_agent$scheme$server_protocol$server_addr"; }if ( $query_string ~* ".*[\;'\<\>].*" ){return 200 $query_string:$server_port;  }#$args : #这个变量等于请求行中的参数,同$query_string#$content_length : 请求头中的Content-length字段。#$content_type : 请求头中的Content-Type字段。#$document_root : 当前请求在root指令中指定的值。#$host : 请求主机头字段,否则为服务器名称。#$http_user_agent : 客户端agent信息#$http_cookie : 客户端cookie信息#$limit_rate : 这个变量可以限制连接速率。#$request_method : 客户端请求的动作,通常为GET或POST。#$remote_addr : 客户端的IP地址。#$remote_port : 客户端的端口。#$remote_user : 已经经过Auth Basic Module验证的用户名。#$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。#$scheme : HTTP方法(如http,https)。#$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。#$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。#$server_name : 服务器名称。#$server_port : 请求到达服务器的端口号。#$request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。#$uri : 不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。#$document_uri : 与$uri相同。#常用正则#. : 匹配除换行符以外的任意字符#? : 重复0次或1次#+ : 重复1次或更多次#* : 重复0次或更多次#\d :匹配数字#^ : 匹配字符串的开始#$ : 匹配字符串的介绍#{n} : 重复n次#{n,} : 重复n次或更多次#[c] : 匹配单个字符c#[a-z] : 匹配a-z小写字母的任意一个     ##add by 20140321#######nginx防sql注入#############start####if ( $query_string ~* ".*[\;'\<\>].*" ){return 444;}if ($query_string  ~* ".*(insert|select|delete|update|count|\*|%|master|truncate|declare|\'|\;|and|or|\(|\)|exec).* ") {  return 444; }if ($request_uri ~* "(cost\()|(concat\()") {return 444;}if ($request_uri ~* "[+|(%20)]union[+|(%20)]") {return 444;}if ($request_uri ~* "[+|(%20)]and[+|(%20)]") {return 444;}if ($request_uri ~* "[+|(%20)]select[+|(%20)]") {return 444;}set $block_file_injections 0;if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {set $block_file_injections 1;}if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {set $block_file_injections 1;}if ($block_file_injections = 1) {return 448;}set $block_common_exploits 0;if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {set $block_common_exploits 1;}if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {set $block_common_exploits 1;}if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {set $block_common_exploits 1;}if ($query_string ~ "proc/self/environ") {set $block_common_exploits 1;}if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {set $block_common_exploits 1;}if ($query_string ~ "base64_(en|de)code\(.*\)") {set $block_common_exploits 1;}if ($block_common_exploits = 1) {return 444;}set $block_spam 0;if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") {set $block_spam 1;}if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") {set $block_spam 1;}if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") {set $block_spam 1;}if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") {set $block_spam 1;}if ($block_spam = 1) {return 444;}set $block_user_agents 0;if ($http_user_agent ~ "Wget") {set $block_user_agents 1;}# Disable Akeeba Remote Control 2.5 and earlierif ($http_user_agent ~ "Indy Library") {set $block_user_agents 1;}# Common bandwidth hoggers and hacking tools.if ($http_user_agent ~ "libwww-perl") {set $block_user_agents 1;}if ($http_user_agent ~ "GetRight") {set $block_user_agents 1;}if ($http_user_agent ~ "GetWeb!") {set $block_user_agents 1;}if ($http_user_agent ~ "Go!Zilla") {set $block_user_agents 1;}if ($http_user_agent ~ "Download Demon") {set $block_user_agents 1;}if ($http_user_agent ~ "Go-Ahead-Got-It") {set $block_user_agents 1;}if ($http_user_agent ~ "TurnitinBot") {set $block_user_agents 1;}if ($http_user_agent ~ "GrabNet") {set $block_user_agents 1;}if ($block_user_agents = 1) {return 444;}###end####}   server {listen 80;server_name baidu;return https://www.baidu.com/;#  return 301 https://$server_name$request_uri;}
}

在开始处理一个http请求时,nginx会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求。

server_name与host匹配优先级如下:

1、完全匹配
2、通配符在前的,如*.test.com  相同情况比较长度,匹配的长度越长优先级越高
3、在后的,如www.test.*   
4、正则匹配,如~^\.www\.test\.com$
如果都不匹配
1、优先选择listen配置项后有default或default_server的
2、找到匹配listen端口的第一个server块

http的全称是Hypertext Transfer Protocol Vertion (超文本传输协议),说通俗点就是用网络链接传输文本信息的协议
HTTPS的全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议。
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

SSL协议
安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

nginx官网指南:http://nginx.org/en/docs/
超详细的配置详解:https://www.cnblogs.com/liang-wei/p/5849771.html

转载于:https://my.oschina.net/905042249/blog/3019802

mynginx.conf相关推荐

  1. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动          假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/loca ...

  2. 最全面 Nginx 入门教程 + 常用配置解析

    http://blog.csdn.net/shootyou/article/details/6093562 个人整理资料,转帖注明出处,谢谢~ Nginx介绍和安装 一个简单的配置文件 模块介绍 常用 ...

  3. Docker部署nginx并修改配置文件

    docker 部署个nginx,简直太简单了好吧 直接一行命令搞定: docker run \--name nginx-health-web-pc \-d -p 6800:80 \-v /usr/do ...

  4. nginx命令和配置

    2019独角兽企业重金招聘Python工程师标准>>> 假设 nginx 安装在 /usr/local/nginx 目录中 启动 关闭 停止 测试 nginx     /usr/lo ...

  5. docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4,harbor)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 docker安装mysql docker search mysql 搜索 docker pull mysql:5.6 下载 docker images ...

  6. deepin系统安装nginx

    安装准备:jdk环境 安装sudo apt-get install nginx默认是开启的,要关闭一下 sudo nginx -s quit sudo nginx -s stop文件地址 cd /et ...

  7. Docker for Windows

    1.启动 Docker for Windows 2.CMD Docker命令 > docker imags # 查看本地镜像 docker image ls  --all > docker ...

  8. CentOS7搭建LNMP+WordPress一篇搞定

    零.关于本文 本文首次完成于2019年5月12日,经历多次修改.本文所有的参考文献,均以超链接的形式给出.考虑到网上的部分教程不够完整,有的已经过时,我将我搭建环境的方法记录下来. 这篇文章适合: 希 ...

  9. ubuntu安装以及启动nginx

    apt install nginx  #安装nginx sudo systemctl start nginx  #启动nginx服务 如果访问浏览器出现下图,则表示安装成功,接下来就是配置nginx服 ...

最新文章

  1. ServiceLoader跟DriverManager使用总结
  2. 第十五章 异常检测-机器学习老师板书-斯坦福吴恩达教授
  3. mysql InnoDB 聚集索引,二级索引
  4. 11_模型的选择与调优,交叉验证,超参数搜索-网格搜索sklearn.model_selection.GridSearchCV
  5. Flink SQL Client中的Chained (Event) Time Windows
  6. 【使用注意】多线程导致解码混乱的情况
  7. IBM PHP教程链接
  8. unity ugui序列帧动画
  9. icem搅拌器网格划分_搅拌器研究所的第六个开放电影项目
  10. win7 professional 英文版 改 中文
  11. C++ primer plus 第六版 第十一章 复习题
  12. iOS 音乐播放器的实现
  13. 文章的DOI号是神马
  14. 天罡现世,Balong出海,华为这波5G动作666!
  15. vue 右键菜单contextMenu
  16. 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP
  17. 【英语】-11月英语总结
  18. 目标检测之YOLOv1到YOLOv3系列简介
  19. Vue+ElementUI实现的权限管理系统
  20. 2022-2028年中国邮轮游行业竞争现状及投资决策建议报告

热门文章

  1. 修改mint-ui的主题色
  2. 绿盟科技网络安全威胁周报2017.17 请关注Squirrelmail 远程代码执行漏洞CVE-2017-7692...
  3. 一个实用的PHP缓存实例
  4. 3 关于数据仓库维度数据处理的方法探究系列——缓慢变化维概述和原理
  5. 纯python好找工作吗_学西点好找工作吗?
  6. word图片自动换行不亮_Word自动换行版式不变形
  7. 周围剃光头顶留长发型_为什么很多秃头的人,宁愿周围留一圈头发,也不愿剃成光头?...
  8. sql怎么实现取当前数据以及累计7天数据_年薪60万+大佬吐血整理字节跳动大数据面试真题...
  9. 注册表数据提取工具RegRipper
  10. linux怎样优化桌面,简单优化设置Ubuntu 18.04系统的GNOME桌面