Nginx安装过程(Linux)
1、 在安装nginx之前,要安装其他的一些相关软件,包括gcc、openssl、pcre和zlib,这里分别来解释一下这些都是什么东西:
1.1 GCC是一个用于linux系统下编程的编译器,是一个用于编程开发的自由编译器。最初,GCC只是一个C语言编译器,它是GNU C Compiler 的英文缩写。随着众多自由开发者的加入和GCC自身的发展,如今的GCC已经是一个包含众多语言的编译器了。其中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。也就是GNU编译器家族的意思。当然,如今的GCC借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。
可以使用下载后安装的方式,下载地址如下:
下载: http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2
% tar zxvf gcc-4.1.2.tar.gz 或者% bzcat gcc-4.1.2.tar.bz2 | tar xvf – 解压缩。
也可以使用在线安装的方式,如下命令:
yum install gcc-c++完成安装
1.2 OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
安装命令:
yum -y install openssl openssl-devel完成安装。
1.3 在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite
模块和HTTP 核心模块会使用到PCRE正则表达式语法,在后面,你将发现这一点。需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。可以使用下面示例中的命令来安装这两种软件包。
安装命令:
yum -y install pcre-devel
1.4 zlib是一个很好的压缩和解压缩库。
下载:wget http://heanet.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
解压:tar -xzvf zlib-1.2.8.tar.gz
指定安装目录:
./configure --prefix=/usr/local/zlib/zlib1.2.8/data/zlib(可以自己设置)
编译
根目录下:make
安装
根目录下:make install
系统配置
cd /etc/ld.so.conf.d进入当前目录,新建zlib.conf文件,在文件写入:--prefix的value值,如:/usr/local/zlib/zlib1.2.8/data/zlib
加载配置
执行命令:ldconfig
2、 下载nginx软件,下载地址
从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载)
3、 解压 tar -zxvf nginx-1.5.9.tar.gz
4、 make 编译 (make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件)
make install 安装 (make install是把这些编译出来的可执行文件和库文件复制到合适的地方)
5、 安装后在linux下启动和关闭nginx:
5.1 /root/prog/nginx /sbin/nginx (/root/prog/nginx/sbin/nginx -t 查看配置信息是否正确)
5.2 停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/root/prog /nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
参考网址:
http://blog.csdn.net/wjg_ww/article/details/49924353
nginx.conf位置的地址:
/root/nginx/nginx-1.5.9/conf/nginx.conf
#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 {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept off; #设置一个进程是否同时接受多个网络连接,默认为off
#use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大连接数,默认为512
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log off; #取消服务日志
access_log /root/nginx/nginx-1.5.9/log/yxt.log main;
sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。
gzip on;
upstream yxt.com {
server 117.156.17.6:18081 weight=1;//被代理的IP地址和port
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
server {
keepalive_requests 120; #单连接请求上限次数
listen 80;
server_name 192.168.0.248;//本地ip地址
location / {
index /qazitem/view/register/index.jsp;
proxy_pass http://yxt.com;
#以下是一些反向代理的配置可删除
#Proxy Settings
proxy_redirect default;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300;#nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300;#后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300;#连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k;#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
}