博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx安装过程(Linux)
阅读量:6851 次
发布时间:2019-06-26

本文共 4323 字,大约阅读时间需要 14 分钟。

hot3.png

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借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。

可以使用下载后安装的方式,下载地址如下:

下载:

% 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

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

                   }

    }

 

}

转载于:https://my.oschina.net/maojindaoGG/blog/864714

你可能感兴趣的文章
linux下乱码问题及解决方式
查看>>
回车和换行有什么区别?很尴尬》》》
查看>>
Hibernate(十六)数据库事务与隔离级别
查看>>
laravel、lumen遇到的问题解决
查看>>
MYSQL-mysqlslap
查看>>
Cisco ASA5500解决内网用公网IP不能访问DMZ区服务器的
查看>>
Windows7常用命令
查看>>
crack-jar游戏之拉阔
查看>>
Java中的深拷贝和浅拷贝
查看>>
<JQuery>页面加载函数的三种写法
查看>>
大数据系列12:Hadoop2 – 全新的Hadoop
查看>>
Result相关
查看>>
关于scrolltop 兼容 IE6/7/8, Safari,FF的方法
查看>>
PRIu64宏—打印输出64位整型值
查看>>
command设计模式
查看>>
postgresql数据类型之时间类型
查看>>
virtualmin proftpd cuteftp下如何显示.开头隐藏文件
查看>>
第16章 C预处理器和C库 16.5 文件包含: #include
查看>>
关于Goertzel
查看>>
No module named mysqldb
查看>>