nginx的相关信息
Nginx安装
nginx官网:https://nginx.org/
安装准备:nginx依赖pcre库,要先安装pcre(nginx在rewrite时需要解析正则,PCRE是正则解析库)
yum install pcre pcre-devel
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx
make && make install
Nginx说明
cd /usr/local/nginx 下主要信息:
--conf 配置文件
--html 网页文件
--logs 日志信息
--sbin 二进制程序
PathInfo模式:
默认nginx不支持path_info模式,apache自带path_info模式
nginx实现原理:
正则匹配.php后面的pathinfo部分
把pathinfo部分赋给PATH_INFO变量
# 典型配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
include fastcgi_params;
} # 修改第1,6行,支持pathinfo location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量 比如 index.php/user/login 中将 /user/login传给PATH_INFO变量
include fastcgi_params;
}
Url重写(rewrite)
php访问去掉index.php
location / {
root 网站更目录路径;
index 首页
if ( !-e $uri ) { #访问不存在的时候
rewrite (.*)$ /index.php/$1;
}
}
注意:if后面一定需要加空格
regex 常用正则表达式说明
|
字符 |
描述 |
|
\ |
将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$” |
|
^ |
匹配输入字符串的起始位置 |
|
$ |
匹配输入字符串的结束位置 |
|
* |
匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” |
|
+ |
匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o” |
|
? |
匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}" |
|
. |
匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式。 |
|
(pattern) |
匹配括号内pattern并可以在后面获取对应的匹配,常用$0...$9属性获取小括号中的匹配内容,要匹配圆括号字符需要\(Content\) |
try_files(rewrite的简写模式吧)
案例:去掉index.php
location / {
root 项目根目录;
index 首页
try_files $uri /index.php?$uri; #尝试去访问$uri,如果访问不到则访问 /index.php?$uri
}
反向代理:
请求图片访问另一台服务器:
location ~ \.(jpeg|jpg|png|gif)$ {
proxy_pass http://ip:port
}
在浏览器中输入a.com能访问到内网机器192.168.138.38的3000端口,输入b.com能访问到内网机器192.168.138.40的80端口 目的:外网ip有限,有多个域名
server
{
listen 80;
server_name a.com;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.138.38:3000;
}
access_log logs/a_com_access.log;
}
server
{
listen 80;
server_name b.com;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.138.40:80;
}
access_log logs/b_com_access.log;
}
集群和负载均衡:
1、上游配置upstream
upstream servers {
server 192.168.138.2:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.138.3:8080 weight=1 max_fails=2 fail_timeout=30s;
#weight 表示权重 fail_timeout表示超时时间 max_fails表示最大次数
} 2、下游配置调用
location ~ \.(jepg|jpg|png|gif) {
proxy_paxx http://servers;#对应上游upstream中的名称
proxy_set_header X-Forwarded-For $remote_addr;#原始用户ip
}
nginx的相关信息的更多相关文章
- Nginx隐藏主机信息,proxy_hide_header 与fastcgi_hide_header
Nginx中proxy_hide_header 与fastcgi_hide_header都可以隐藏主机头信息,两者在具体使用时还是有着一定的区别的.刚好业务使用的nginx反向代理在显示响应头时将后端 ...
- [linux]netstat命令详解-显示linux中各种网络相关信息
1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表 接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关-t ...
- CentOS7安装Nginx及其相关
一.安装所需环境 gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装. yum install gcc-c++ PCRE pcr ...
- Nginx Rewrite相关功能
目录 Nginx Rewrite相关功能 ngx_http_rewrite_module模块指令: if指令: set指令: break指令: return指令: rewrite_log指令: rew ...
- Nginx location相关配置说明
Nginx location相关配置说明 基于不同的IP.不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块ngx_http_core_module实现. 新建PC web站点 [ ...
- ManagementClass类解析和C#如何获取硬件的相关信息
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...
- MySQL查看数据库相关信息
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases ...
- php http头设置相关信息
HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...
- 在linux中查询硬件相关信息
1.查询cpu的相关 a.查询CPU的统计信息 使用命令:lscpu 得到的结果如下: Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte Ord ...
随机推荐
- springboot 完整企业项目搭建实记
昨天搭建ssm框架时突然想到可以搭建springboot来完美解决配置复杂的问题,今天学习了一下springboot的搭建,在此记录一下搭建的过程和踩过的坑 这里给自己定一个该框架搭建完成的目标,如下 ...
- eclipse不能自动编译生成class文件的解决办法
最近在项目项目开发过程中遇到eclipse不能自动编译生成class文件,当时很纳闷,每次修改代码后运行都是修改前的效果,没辙了,只好反编译原来的class文件,结果发现,class文件里并没有看到修 ...
- 云通讯 为php_sdk 添加关闭子账户扩展
- Spring Cloud是一系列框架的有序集合
Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都可以用 ...
- linux 下简单的ftp客户端程序
该ftp的客服端是在linux下面写,涉及的东西也比较简单,如前ftp的简单介绍,知道ftp主要的工作流程架构,套接字的创建,还有就是字符串和字符的处理.使用的函数都是比较简单平常易见的,写的时候感觉 ...
- gitolite 服务器搭建
网上大牛都说的是安装gitolite要建git用户,我看完全没必要,毕竟用户拿到私钥也未必能登录服务器吧...下面我们就用root用户来安装gitolite,并且配置版本库文件保存路径.. 1. gi ...
- hrbustoj 1305:多边形(计算几何,极角排序练习)
多边形 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 113(42 users) Total Accepted: 51(3 ...
- [openwrt]网络配置
Network: config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr ...
- python 获取网页编码格式
f = urllib2.urlopen(url,timeout=10)data = f.read() # decode the htmlcontentType = f.headers.get(' ...
- VC++ 轻松实现“闪屏” SplashWnd
我们平时使用的好多软件在运行启动时都会有一个“闪屏”画面显示,一般用于标识软件的一些信息,如软件版本名称.公司等,通过查找资料发现,其实实现起来很简单,一个类就能搞定! SplashWnd.h C+ ...