nginx入门
来源:互联网 发布:网络教育考试怎么考 编辑:程序博客网 时间:2024/04/27 16:15
公司使用到了nginx,于是周末初步接触了一下nginx,立即被其简洁,优雅,高效的特性给迷住了。nginx是在是个好东西,配置极其简单,容易理解,极其高效,稍微一调优,ab测试10k并发,很轻松。比起apache来强太多了...
1. 下载
[root
@localhost
src]# wget -c http:
//nginx.org/download/nginx-1.6.2.tar.gz
--
2015
-
01
-
11
16
:
04
:
13
-- http:
//nginx.org/download/nginx-1.6.2.tar.gz
Resolving nginx.org...
206.251
.
255.63
Connecting to nginx.org|
206.251
.
255.63
|:
80
... connected.
HTTP request sent, awaiting response...
200
OK
Length:
804164
(785K) [application/octet-stream]
Saving to: “nginx-
1.6
.
2
.tar.gz”
100
%[=====================================================================>]
804
,
164
5
.03K/s in 3m 42s
2015
-
01
-
11
16
:
07
:
57
(
3.54
KB/s) - “nginx-
1.6
.
2
.tar.gz” saved [
804164
/
804164
]
2.解压
[root
@localhost
src]# tar xvf nginx-
1.6
.
2
.tar.gz
nginx-
1.6
.
2
/
nginx-
1.6
.
2
/auto/
nginx-
1.6
.
2
/conf/
nginx-
1.6
.
2
/contrib/
nginx-
1.6
.
2
/src/
nginx-
1.6
.
2
/configure
...
3. 安装
[root
@localhost
nginx-
1.6
.
2
]# ./configure
....
creating objs/Makefile
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using builtin md5 code
+ sha1 library is not found
+ using system zlib library
nginx path prefix:
"/usr/local/nginx"
nginx binary file:
"/usr/local/nginx/sbin/nginx"
nginx configuration prefix:
"/usr/local/nginx/conf"
nginx configuration file:
"/usr/local/nginx/conf/nginx.conf"
nginx pid file:
"/usr/local/nginx/logs/nginx.pid"
nginx error log file:
"/usr/local/nginx/logs/error.log"
nginx http access log file:
"/usr/local/nginx/logs/access.log"
nginx http client request body temporary files:
"client_body_temp"
nginx http proxy temporary files:
"proxy_temp"
nginx http fastcgi temporary files:
"fastcgi_temp"
nginx http uwsgi temporary files:
"uwsgi_temp"
nginx http scgi temporary files:
"scgi_temp"
[root
@localhost
nginx-
1.6
.
2
]# make && make install
[root
@localhost
nginx]# pwd
/usr/local/nginx
[root
@localhost
nginx]# ll
total
16
drwxr-xr-x.
2
root root
4096
Jan
11
16
:
12
conf
drwxr-xr-x.
2
root root
4096
Jan
11
16
:
12
html
drwxr-xr-x.
2
root root
4096
Jan
11
16
:
12
logs
drwxr-xr-x.
2
root root
4096
Jan
11
16
:
12
sbin
安装成功。其中conf是配置文件的目录,html是放web页面的目录,logs是放日志文件的目录,sbin目录是 nginx运行时二进制文件。安装时有可能报PCRE库缺失,可以使用命令安装即可:yum -y install pcre-devel;
4. 启动关闭nginx的方法
[root
@localhost
sbin]# /usr/local/nginx/sbin/nginx
[root
@localhost
sbin]# echo $?
0
[root
@localhost
sbin]# ps -elf|grep nginx
1
S root
3740
1
0
80
0
-
887
-
16
:
16
?
00
:
00
:
00
nginx: master process /usr/local/nginx/sbin/nginx
5
S nobody
3741
3740
0
80
0
-
933
-
16
:
16
?
00
:
00
:
00
nginx: worker process
0
S root
3744
1306
0
80
0
-
1088
-
16
:
16
pts/
1
00
:
00
:
00
grep nginx
[root
@localhost
sbin]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp
0
0
0.0
.
0.0
:
22
0.0
.
0.0
:* LISTEN
1131
/sshd
tcp
0
0
127.0
.
0.1
:
631
0.0
.
0.0
:* LISTEN
1004
/cupsd
tcp
0
0
0.0
.
0.0
:
40035
0.0
.
0.0
:* LISTEN
928
/rpc.statd
tcp
0
0
0.0
.
0.0
:
111
0.0
.
0.0
:* LISTEN
908
/rpcbind
tcp
0
0
0.0
.
0.0
:
80
0.0
.
0.0
:* LISTEN
3740
/nginx
tcp
0
64
192.168
.
137.9
:
22
192.168
.
137.1
:
51321
ESTABLISHED
1267
/sshd
tcp
0
0
192.168
.
137.9
:
22
192.168
.
137.1
:
51322
ESTABLISHED
1270
/sshd
tcp
0
0
192.168
.
137.9
:
22
192.168
.
137.1
:
51336
ESTABLISHED
1331
/sshd
tcp
0
0
:::
22
:::* LISTEN
1131
/sshd
tcp
0
0
::
1
:
631
:::* LISTEN
1004
/cupsd
tcp
0
0
:::
38082
:::* LISTEN
928
/rpc.statd
tcp
0
0
:::
111
:::* LISTEN
908
/rpcbind
上面所示,成功启动了ngnix,在80端口运行。
nginx的进程分为了master 进程和worker进程,前者做为管理进程,管理后者,后者是处理页面请求的进程,worker可以有多个。一般根据CPU核数和负载进行配置多个worker. 我们访问试试:
nginx的启动,关闭等等操作命令如下:
[root
@localhost
sbin]# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/
1.6
.
2
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h :
this
help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (
default
: /usr/local/nginx/)
-c filename : set configuration file (
default
: conf/nginx.conf)
-g directives : set global directives out of configuration file
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -s quit
/usr/local/nginx/sbin/nginx -s reopen
/usr/local/nginx/sbin/nginx -s reload
分别表示 优雅的停止nginx;立即停止nginx;重新打开日志文件;平滑的重启nginx并重新加载nginx的配置文件;
/usr/local/nginx/sbin/nginx -t 可以用来修改配置文件之后,测试配置文件是否有语法错误
5. 通过信号量来控制nginx
其实质是通过信号量来对nginx进行控制的,所以也可以通过下面的方式来控制nginx:
kill -INT `cat /usr/local/nginx/logs/nginx.pid`
[root
@localhost
logs]# kill -INT `cat /usr/local/nginx/logs/nginx.pid`
[root
@localhost
logs]# ps -elf|grep nginx
0
S root
3843
1306
0
80
0
-
1088
-
16
:
37
pts/
1
00
:
00
:
00
grep nginx
看到nginx的两个进程被我们杀掉了。还有其他的信号量可以使用,分别对应到上面的命令。
kill -HUP pid, kill -USR1 pid, kill -USR2 pid 等等,总结如下:
1. TERM,INT : Quick shutdown,立即关闭进程,不管他有没有在处理请求;
2. QUIT : Graceful shutdown, 优雅的关闭进程,也就是等到该进程处理的请求都完成之后才关闭;
3. HUP : Configuration reload, start the new worker processes with a new configuration. Gracefully shutdown the old worker processes
4. USR1 : Reopen the log files, 重新打开日志文件,在备份日志按月/日分割日志时用;
5. USR2 : Upgrade Executable on the fly, 平滑的升级;
6. WINCH : Gracefully shutdown the worker processes, 优雅的关闭旧的进程(配合USR2来进行升级);
先写到这里,后面继续学习nginx的配置。
- nginx 入门
- Nginx入门
- nginx入门
- nginx入门
- nginx入门
- Nginx入门
- nginx 入门
- Nginx入门
- Nginx入门
- nginx入门
- Nginx入门
- Nginx入门
- nginx入门
- nginx 入门
- nginx入门
- nginx入门
- Nginx入门
- Nginx入门
- phonegap 框架详解
- Button 整理
- 【BZOJ】【P2729】【HNOI2012】【排队】【题解】【数学】
- 数据库从零开始-初识MySql
- 矩阵学习笔记4
- nginx入门
- sed 例子
- android中mainifest的一些属性
- 继续学python
- HDU 1026 Ignatius and the Princess I
- Android 中Toast的使用
- 实现UIScrollView的循环滚动
- iOS中常用的六种手势
- Android 多线程延迟(sleep)