环境:所使用的系统为win10自带的ubuntu系统,所操作的nginx的版本为1.4.2,并且nginx所需的环境已经下载完毕。
下载和安装
下载
wget http://nginx.org/download/nginx-1.4.2.tar.gz #下载安装包
tar -zxvf nginx-1.4.2.tar.gz #进行解压
安装
./configure --prefix=/usr/local/nginx #配置安装目录
make && make install #进行安装
注:安装目录为/usr/local/nginx
安装成功之后会显示下边四个文件夹
conf #配置文件所放的位置
html #html文件
logs #日志文件
sbin #主要二进制程序
启动
./sbin/nginx
ps -ef | grep nginx
注:如果启动失败显示80端口被占用无法启动,那么可能是因为80端口被http或者其他服务占据,杀死这个进程然后重新启动即可。
配置文件修改
注:每次重写配置文件之后,都需要重启nginx服务器,重启的命令有两种,一种是使用信号,信号需要配置进程号进行使用,另一种使用正常命令
kill -HUP `cat /usr/local/nginx/logs/nginx.pid` #pid文件获取进程号,然后使用信号进行重启
配置文件粗解
worker_processes 1; # 有1个工作的子进程,可以自己设置
Event { # 一般是配置nginx连接的特性
worker_connections 1024; // 这是指 一个子进程最大允许连1024个连接
}
http {
Server1 { #服务器配置
Location { #定位,将请求的路径特殊处理
}
}
Server2 {
}
}
例子1: 基于域名的虚拟主机
server {
listen 80; #监听端口
server_name localhost; #监听域名
location / {
root /var/www/a.com; #根目录定位
index index.html; #对应哪些html
}
location index {
root /usr/local/nginx/html/index;
index index.html index.htm;
}
}
kill -HUP `cat /usr/local/nginx/logs/nginx.pid` #平滑重启nginx服务
注:基于域名的配置,除了修改配置文件之外,还要修改C:\Windows\System32\drivers\etc下的hosts文件,需要在下边加上127.0.0.1 a.com(windows系统)
linux系统则需要vi /etc/hosts ,加上127.0.0.1 www.a.com
例子2: 基于端口的虚拟主机配置
server {
listen 8080;
server_name localhost;
location / { #匹配策略 /代表默认 还有其他的匹配模式
root /var/www/html;
index index.html;
}
location index {
root /usr/local/nginx/html/index;
index index.html index.htm;
}
}
kill -HUP `cat /usr/local/nginx/logs/nginx.pid` #平滑重启nginx服务
日志管理
日志主要记录了来自哪些ip访问了这个服务器,以及时间和访问方式和其他的,默认的日志格式为main格式,在注释中写着,你也可以自己定义格式。
# access_log logs/host.access.log main;
# 这说明 该server, 它的访问日志的文件是 logs/host.access.log
# 使用的格式”main”格式.
# 除了main格式,你可以自定义其他格式.
main格式介绍
log_format main
'$remote_addr #远程IP
$remote_user #远程用户
[$time_local] #本地时间
"$request" ' #请求方法(如GET/POST)
'$status #状态码 200或者404
$body_bytes_sent #请求体body长度
"$http_referer" ' #referer来源信息
'"$http_user_agent" #用户代理/蜘蛛
"$http_x_forwarded_for"' #在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP,相当于本来来源于哪个网站
配置文件打开日志
access_log logs/host.access.log main; #打开日志文件功能,放在logs下边的host.access.log下边,格式为main