Nginx Linux安装配置

来源:互联网 发布:福布斯网络作家富豪榜 编辑:程序博客网 时间:2024/06/09 22:09

Nginx 安装配置方法

1.Linux系统为Centos 64

第一步:从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载)

第二步:解压 tar -zxvf nginx-1.5.9.tar.gz 

第三步:设置一下配置信息 ./configure --prefix=/usr/local/nginx 

第四步:

下载的原文件中执行:

  make 编译make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件)

  make install 安装make install是把这些编译出来的可执行文件和库文件复制到合适的地方)


在配置信息的时候,也就是在第三步,出现了一下错误:

292000503917699.jpg

错误为:./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题

yum -y install pcre-devel

还有可能出现:

错误提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.

 

解决办法:

yum -y install openssl openssl-devel

 

安装后在linux下启动和关闭nginx


启动操作

/usr/nginx/sbin/nginx (/usr/nginx/sbin/nginx -t 查看配置信息是否正确)

停止操作

停止操作是通过向nginx进程发送信号(什么是信号请参阅linux 章)来进行的

步骤1:查询nginx主进程号

ps -ef | grep nginx

在进程列表里 面找master进程,它的编号就是主进程号了。

步骤2:发送信号

从容停止Nginx

kill -QUIT 主进程号

快速停止Nginx

kill -TERM 主进程号

强制停止Nginx

pkill -9 nginx


另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginxlogs目录下。有了pid 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

kill -信号类型 '/usr/nginx/logs/nginx.pid'


平滑重启

如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。

平滑重启命令:

kill -HUP 住进称号或进程号文件路径

或者使用

/usr/nginx/sbin/nginx -s reload

 

 

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

nginx -t -c /usr/nginx/conf/nginx.conf

或者

/usr/nginx/sbin/nginx -t




nginx设置多端口转发(不同端口应用使用二级域名访问).md

修改配置文件:nginx.conf



//  第一个应用配置

server {

    listen       80 default;

    server_name  www.testwk.com;

        index index.html index.htm index.jsp *;

        root /alidata/www/default;


        location ~ \.jsp$ {

                proxy_pass    http://127.0.0.1:8080;

        }


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

                expires 30d;

        }


        location ~ .*\.(js|css)?$

        {

                expires 1h;

        }


        access_log  /alidata/log/nginx/access/default.log;

}

//第二个应用配置,这个应用不是运行在80端口上的。并且可以是另外一个服务器

//使用属性proxy_pass设置

server {

    listen       80;

    server_name  bak.testwk.com;


        location / {

                proxy_redirect off;

                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_pass http://127.0.0.1:7878;

        }


        access_log  /alidata/log/nginx/access/blog.log;

}

配置完成需要重启nginx /etc/init.d/nginx restart

配置修改完成之后需要设置域名的解析设置,在解析设置中增加一个二级域名。比如:


我的主域名是:testwk.com,增加了一个二级域名为bk.testwk.com然后结合nginx的配置实现,服务器上的一个运行在7878端口的应用可以以bk.testwk.com方式访问,而且不需要指出端口就可以访问(一般情况访问需要加端口,比如bk.testwk.com:7878)。

所以呢,不管应用再多只要一个域名足够了,其他的应用配置的nginx即可,并且访问时候不需要加端口。非常方便!!