nginx入门之初识nginx

高性能服务器Nginx的入门,初识Nginx

什么是Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx的三个主要运用场景

  • 静态资源服务
    • 通过本地文件系统提供服务
  • 反向代理服务
    • Ngnix强大性能
    • 缓存
    • 负载均衡
  • API服务
    • OpenResty

Nginx的优点

Nginx的组成

Nginx二进制可执行文件:由各模块源码编译出的一个文件

Nginx配置文件Nginx.conf:控制Nginx的行为

access.log访问日志:记录每一条http请求信息

error.log错误日志:记录错误信息,可以定位问题

Nginx的编译和安装

环境准备

1.安装相关依赖

1
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2.安装常用工具

1
yum -y install wget httpd-tools vim

3.查看防火墙状态

1
2
3
systemctl status firewalld
或者
firewall-cmd --state

4.开启了防火墙,所以配置iptables

安装iptables

1
yum install iptables-services  

配置iptables规则

1
vim /etc/sysconfig/iptables

常用的80和8080端口

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT    #添加的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT  #添加的
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

重启生效

1
systemctl restart iptables

安装Nginx

1.下载Nginx压缩包

1
wget https://www.nginx.org/download/nginx-1.17.7.tar.gz

2.解压

1
tar -zxvf nginx-1.17.7.tar.gz

3.Nginx目录结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
drwxr-xr-x. 6 1001 1001   4096 Jun 15 18:53 auto
-rw-r--r--. 1 1001 1001 301572 Dec 24 23:00 CHANGES
-rw-r--r--. 1 1001 1001 460207 Dec 24 23:00 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 Jun 15 18:53 conf
-rwxr-xr-x. 1 1001 1001   2502 Dec 24 23:00 configure
drwxr-xr-x. 4 1001 1001     72 Jun 15 18:53 contrib
drwxr-xr-x. 2 1001 1001     40 Jun 15 18:53 html
-rw-r--r--. 1 1001 1001   1397 Dec 24 23:00 LICENSE
drwxr-xr-x. 2 1001 1001     21 Jun 15 18:53 man
-rw-r--r--. 1 1001 1001     49 Dec 24 23:00 README
drwxr-xr-x. 9 1001 1001     91 Jun 15 18:53 src

4.编译安装

1
2
3
4
[root@centos7 nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[root@centos7 nginx-1.6.2]# make
[root@centos7 nginx-1.6.2]# make install
[root@centos7 nginx-1.6.2]# 

其他

编译参数

安装目的目录或路径

  • –prefix=/etc/nginx
  • –sbin-path=/usr/sbin/nginx
  • –modules-path=/usr/lib64/nginx/modules
  • –conf-path=/etc/nginx/nginx.conf
  • –error-log-path=/var/log/nginx/error.log
  • –http-log-path=/var/log/nginx/access.log
  • –pid-path=/var/run/nginx.pid (记录nginx启动服务的进程ID)
  • –lock-path=/var/run/nginx.lock

编译生成的文件,执行对应模块时,Nginx所保留的临时性文件

  • –http-client-body-temp-path=/var/cache/nginx/client_temp
  • –http-proxy-temp-path=/var/cache/nginx/proxy_temp
  • –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
  • –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
  • –http-scgi-temp-path=/var/cache/nginx/scgi_temp

rpm安装时的目录

1
/etc/logrotate.d/nginx
  • 类型:配置文件
  • 作用:Nginx日志轮转,用于logrotate服务的日志切割(比如按天切割日志)
1
/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf
  • 类型:目录,配置文件
  • 作用:Nginx主配置文件

/etc/nginx/nginx.conf 是主配置文件,当Nginx启动优先读取,当没有变更的时候,会读取/etc/nginx/conf.d/default.conf(安装是默认加载的)。

1
/etc/nginx/fastcgi_params /etc/nginx/uwsgi_params /etc/nginx/scgi_params
  • 类型:配置文件
  • 作用:cgi配置相关,fastcgi配置
1
/etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
  • 类型:配置文件
  • 作用:编码转换映射转化文件
1
/etc/nginx/mime.types
  • 类型:配置文件
  • 作用:设置http协议的ContentType(数据返回类型)与扩展名对应关系

当Nginx要处理一些不能识别的扩展名和文件类型的时候就需要编辑该文件

1
/usr/lib/systemd/system/nginx-debug.service /usr/lib/systemd/system/nginx.service /etc/sysconfig/nginx /etc/sysconfig/nginx-debug
  • 类型:配置文件
  • 作用:用于配置出系统守护进程管理器管理方式
1
/usr/lib64/nginx /etc/nginx/modules
  • 类型:目录
  • 作用:Nginx模块目录
1
/usr/sbin/nginx /usr/sbin/nginx-debug
  • 类型:命令
  • 作用:Nginx服务的启动管理的终端命令
1
/usr/share/doc/nginx-1.6.2 /usr/share/doc/nginx-1.6.2/COPYRIGHT /usr/share/man/man8/nginx.8.gz
  • 类型:文件,目录
  • 作用:Nginx的手册和帮助文件
1
/var/cache/nginx
  • 类型:目录
  • 作用:Nginx的缓存目录

Nginx处理可以做代理,还可以做缓存服务

1
/var/log/nginx
  • 类型:目录
  • 作用:Nginx的日志目录
Licensed under CC BY-NC-SA 4.0