nginx学习笔记 +负载

一、首先就是nginx的安装

这里使用编译安装

在官网http://nginx.org找到需要的版本,因其依赖pcre库,先安装pcre库
命令

#yum install pcre pcre-devel
#cd /user/local/src
#weget http://nginx.org/download/nginx-1.16.1.tar.gz
#tar zxvf nginx-1.16.1.tar.gz
#cd nginx-1.16.1
#make && make install

下载完成,这里记录一下相关知识
tar 的一些参数
必选且只能选一个的参数
-c: --create 新建一个压缩文档,即打包
-x: --extract,–get解压文件
-t: --list,查看压缩文档里的所有内容
-r:–append 向压缩文档里追加文件,递归下载
-u:–update 更新原压缩包中的文件

辅助选项:
-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz
-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2
-v:显示操作过程!这个参数很常用
-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!
-C:切换到指定目录

二、目录介绍

进入安装的nginx下
可见
conf 配置文件
html 网页文件
logs 日志文件
sbin 二进制程序
启动:进入安装目录后 ./sbin/nginx
启动时常见问题:80端口占用问题
分为两种情况
(1)确实有软件占用,关掉即可;若是自带apache且自启动 server httpd stop;
若是自行编译安装:path/to/apach/bin/apachtl stop
(2)无服务占用
在这里插入图片描述

三、一些命令参数

nginx目录 -t 测试配置
nginx目录 -s reload 加载最新配置
nginx目录 -s stop 立即停止
nginx目录 -s quit 优雅停止(即运行结束停止)
nginx目录 -s reopen 重新打开日志
使用日志文件的切割:复制日志文件到另一个文件中,再新建一个
eg:
mv aa.log bb.log
touch aa.log
但此时不会写入新的aa.log中,我们可以直接重启,更好的方法-s reopen 重连

四、nginx的一些配置

nginx配置文件nginx.conf 1、全局配置

在这里插入图片描述

2.sever段配置虚拟主机

server {
	listen       80;               #监听端口
	server_name  aa.com;      #域名
	access_log   路径(该虚拟主机下日志存放路径)   内容格式(可自定义,见五、日志管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 绝对相对都可以                          #根目录
		index:index.php index.html                 #入口文件
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		fastcgi_pass         127.0.0.1:9000;
		fastcgi_index        index.php;
		fastcgi_param        SCRIPT_FILENAME   $DOCUMENT_ROOT$fastcgi_script_name;
		include              fastcgi_params;
	}
}

五、日志管理

在这里插入图片描述

如果使用了代理服务器,则 $request_addr 就无法获取真正的用户ip,此时代理服务器会返回参数$http_x_forwarded_for

六、url重写

同样在sever中配置(修改两处)

server {
	listen       80;               #监听端口
	server_name  aa.com;      #域名
	access_log   路径(该虚拟主机下日志存放路径)   内容格式(可自定义,见五、日志管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 绝对相对都可以                          #根目录
		index:index.php index.html                 #入口文件
		if (!-e $request_filename) {               #url重写1
			rewrite (.*)$ /index.php/$1;
		}
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		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;              #url重写2
		include              fastcgi_params;
	}
}

七、try_files

上面url重写过于繁琐,官方提供了简单的方法
server {
	listen       80;               #监听端口
	server_name  aa.com;      #域名
	access_log   路径(该虚拟主机下日志存放路径)   内容格式(可自定义,见五、日志管理)
	#eg: access_log   logs/aa.log   simple;
	location \ {
		root: 绝对相对都可以                          #根目录
		index:index.php index.html                 #入口文件
		try_files $uri /index.php?$uri;            #try_files配置
	}
	//解析php的配置
	location ~ \.php$ {
		root                        #和上面一致
		fastcgi_pass         127.0.0.1:9000;
		fastcgi_index        index.php;
		fastcgi_param        SCRIPT_FILENAME   $DOCUMENT_ROOT$fastcgi_script_name;
		include              fastcgi_params;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章