Nginx有什么用?

我们知道一个服务器只有一个80端口,如果我们有一个服务器,并且我们有多个web应用都需要使用到服务器的80端口,我们该怎么办呢?当第一个web应用使用了80端口后,其他应用就使用不了80端口,因为服务器的80端口已经被第一个web应用给占用了,为了解决多个应用在同一个服务器共同使用80端口,我们可以利用Nginx。

在Centos服务器下安装Nginx

安装Nginx前的环境准备

首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

1
2
3
4
$   yum install gcc-c++  
$ yum install pcre pcre-devel
$ yum install zlib zlib-devel
$ yum install openssl openssl--devel

开始安装Nginx

安装之前,最好检查一下是否已经安装有nginx

1
$   find -name nginx

如果系统已经安装了nginx,那么就先卸载

1
$   yum remove nginx

首先进入/usr/local目录

1
$   cd /usr/local

从官网下载最新版的nginx,可以进入官网寻找最新版本

1
$   wget http://nginx.org/download/nginx-1.15.8.tar.gz

解压nginx压缩包

1
$   tar -zxvf nginx-1.15.8.tar.gz

会产生一个nginx-1.15.8 目录,这时进入nginx-1.15.8目录

1
$   cd  nginx-1.15.8

接下来安装,使用–prefix参数指定nginx安装的目录,make、make install安装,命令如下:【如何系统提示./configure: error: the HTTP gzip module requires the zlib library. 则再安装库,命令为yum install -y zlib-devel】

1
2
3
$ sudo ./configure --prefix=/usr/local/nginx  #这一步需要按需要添加编译参数
$ sudo make
$ sudo make install

如果没有报错,顺利完成后,最好看一下nginx的安装目录

1
$   whereis nginx

安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了。
到此,使用CentOS安装nginx已经完成了!


## 启动 先测试一下配置文件是否正确:
1
$ /usr/local/nginx/sbin/nginx -t

无问题可以启动:
【如果使用netstat -ltunp命令,可以看到0.0.0.0:80端口被httpd这个进程占用了,

如何解决服务器的80端口被httpd占用,可以先让它httpd结束,命令为service httpd stop ; 启用httpd的命令为service httpd start】

1
$ /usr/local/nginx/sbin/nginx

检查是否启动成功:
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
部分命令如下:
重启:

1
$ /usr/local/nginx/sbin/nginx –s reload

停止:

1
$ /usr/local/nginx/sbin/nginx –s stop

测试配置文件是否正常:

1
$ /usr/local/nginx/sbin/nginx –t

强制关闭:

1
$ pkill nginx

nginx.conf的配置

我们可以在/usr/local/nginx/conf目录下找到nginx.conf文件,如下图

假设你的官网主页使用了80端口,它的url为http://xxx.cn ,另一个abc应用的url为http://abc.xxx.cn ,先在服务器建好文件夹准备存放不同的应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; #使用80端口监听
server_name localhost;
location / {
root /var/www/html/; #放官网的文件目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80; #使用80端口监听
server_name abc.xxx.cn; #abc web应用的url

location / {
root /var/www/web_abc/; #存放abc web应用的文件夹
index index.html index.htm;
proxy_pass http://120.55.123.123:1234;
#假设服务器的ip地址为120.55.123.123,想用1234端口来转
#发,1234端口先设置服务器规则为允许
}
}
}

现在在浏览器输入http://xxx.cn 就可以访问官网了,在浏览器输入http://abc.xxx.cn (子域名)就可以访问abc web应用了