什么是Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx的三个主要运用场景
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安装时的目录
类型:配置文件
作用:Nginx日志轮转,用于logrotate服务的日志切割(比如按天切割日志)
1
|
/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf
|
/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
|
类型:配置文件
作用:设置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
|
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的手册和帮助文件
Nginx处理可以做代理,还可以做缓存服务