前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx安装过程(Linux)

Nginx安装过程(Linux)

作者头像
用户5640963
发布2019-07-26 10:23:15
1.2K0
发布2019-07-26 10:23:15
举报
文章被收录于专栏:卯金刀GG卯金刀GG

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

}

}

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档