Nginx安装及配置

实验环境

CentOS 1804

Nginx 1.14.1 stable version

Nginx安装以及配置

Nginx目录结构

下载Nginx解压后目录结构如下

[root@localhost ~]# wget http://nginx.org/download/nginx-1.14.1.tar.gz
[root@localhost ~]# tar zxf nginx-1.14.1.tar.gz 
[root@localhost nginx-1.14.1]# ll
total 728
drwxr-xr-x. 6 1001 1001   4096 Nov 20 15:31 auto
-rw-r--r--. 1 1001 1001 287441 Nov  6 21:52 CHANGES
-rw-r--r--. 1 1001 1001 438114 Nov  6 21:52 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 Nov 20 15:31 conf
-rwxr-xr-x. 1 1001 1001   2502 Nov  6 21:52 configure
drwxr-xr-x. 4 1001 1001     72 Nov 20 15:31 contrib
drwxr-xr-x. 2 1001 1001     40 Nov 20 15:31 html
-rw-r--r--. 1 1001 1001   1397 Nov  6 21:52 LICENSE
drwxr-xr-x. 2 1001 1001     21 Nov 20 15:31 man
-rw-r--r--. 1 1001 1001     49 Nov  6 21:52 README
drwxr-xr-x. 9 1001 1001     91 Nov 20 15:31 src
View Code
  • src目录:存放Nginx源码
  • man目录:存放Nginx帮助手册
  • html目录:存放默认网站文件
  • contrib目录:存放其他机构或组织贡献的代码
  • conf目录:存放Nginx服务器的配置文件
  • auto目录:存放大量的脚本文件,和configure脚本程序相关
  • configure文件:Nginx自动安装脚本,用于检查环境,生成编译代码需要的makefile文件
  • CHANGES、CHANGES.ru、LICENSE和README都是Nginx服务器的相关文档资料。

Nginx安装依赖

Nginx中的功能是模块化的,而模块有依赖于一些软件包(如pcre库、zlib库、openssl库),因此需要先安装依赖库

yum -y install pcre-devel zlib-devel openssl-devel
View Code

Linux中的某些软件包具有devel包和非devel包两种形式,如lib和lib-devel。那么两者有什么区别呢?

非devel包就是普通的软件包,而devel包则一般会包括头文件、静态库甚至源码。若仅仅使用这些软件,则仅安装非devel包即可,但若在开发时需要用到这些软件包中的共享库,就需要安装devel包。
通常在使用yum-yinstall安装devel包时,服务器会自动先安装非devel包,然后再安装devel包。因此,当同时需要使用两种包时,可以在yum命令中省略非devel包的书写。

Nginx编译安装

配置编译选项

[root@localhost nginx-1.14.1]# ./configure 
> --prefix=/usr/local/nginx 
> --with-http_ssl_module
View Code

上述命令等价于,表示当前命令没有结束需要换到下一行书写,直到没有时结束。

./configure --prefix=/usr/local/nginx --with-http_ssl_module
View Code

--prefix设置Nginx的安装目录

--with-http_ssl_module设置在Nginx中允许使用http_ssl_module模块的相关功能。

Nginx中还有许多其他模块,后面如果先添加某些模块,再重现编译Nginx并使用--with-选项添加模块即可。

编译及安装

make && make install
View Code

&&用于连接2个命令,根据左边命令的返回值决定是否执行后面的命令。只有前面的命令执行成功后面的命令才会执行。

启动Nginx

/usr/local/nginx/sbin/nginx

[root@localhost ~]# ps aux | grep nginx
root       1371  0.0  0.0  45924  1124 ?        Ss   19:02   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody     1372  0.0  0.0  46372  1892 ?        S    19:02   0:00 nginx: worker process
root       1374  0.0  0.0 112704   968 pts/0    S+   19:02   0:00 grep --color=auto nginx
View Code

Nginx启动后会生成一个主进程(master process)和 工作进程(worker process)。主进程以root用户运行,工作进程以nobody用户运行。

Nginx启动后会占用默认端口号80,如果80端口号已被占用,Nginx则会启动失败

[root@localhost ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1371/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1022/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1179/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1022/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1179/master   
View Code

tlnp分别表示查看tcp协议,查看监听服务,不解析名称,显示进程名称和PID

设置防火墙

默认启动Nginx后,防火墙是阻止80端口的。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

此时访问Nginx服务器

 

 

 

原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9989604.html