Nginx安装过程(Linux)

2019-07-26 10:23:15 浏览数 (1)

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服务器传

}

}

}

0 人点赞