提前预知
Nginx一般都是安装在Linux系统中(当然Windows系统中也可以装)
安装Ngnix依赖下面的环境:
pcre
openssl
zlib
我们先用命令检查一下相应的依赖存在不存在,存在就不需要再安装了:
rpm -qa|grep pcre
rpm -qa|grep openssl
rpm -qa|grep zlib
如果相关的依赖不存在可按需下载安装
,下载方式如下,
如果想省事可以直接通过下面的命令安装这些依赖
:
- 直接使用命令下载并安装:
- 分开下载:
- yum install -y make zlib zlib-devel
- yum install -y make gcc-c++ libtool
- yum install -y openssl openssl-devel
- 合在一起下载:
- yum install -y make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
- make的作用是下载后直接编译
下载依赖地址
下载pcre
下载链接:
https://ftp.pcre.org/pub/pcre/
下载zlib
下载链接:
http://www.zlib.net/fossils/
下载openssl
下载链接:
https://www.openssl.org/source/old/
下载Nginx
下载链接:
http://nginx.org/en/download.html
我下载的版本如下:
安装Nginx的准备
我将Nginx安装在
/usr/lib
目录下:
使用远程工具(xshell)将文件传输到
/usr/lib
目录下
注意:通过远程工具向Linux系统中拖拽文件时,需要修改Linux系统中文件夹的权限
- 往哪个文件夹中上传文件,就要修改那个文件夹的权限
- 此处修改/usr/lib文件夹的权限
- 修改权限需要使用管理员权限:su root
- 修改权限,在usr目录下执行命令:chmod 777 /usr/lib
安装nginx
安装在
/usr/lib
目录下:
- 执行命令进行解压:tar -zxvf nginx-1.12.2.tar.gz
- 进入解压后的文件:cd nginx-1.12.2/
- 执行命令生成配置文件:./configure
- 然后执行命令进行编译和安装:make&&make install
- 装完ngnix之后,会自动在/usr/local文件夹中创建一个ngnix
- 在/usr/local/ngnix文件夹下,有一个sbin启动脚本
- 启动ngnix服务器,进入这个脚本文件夹/usr/local/ngnix/sbin,执行命令:./nginx
- 可以通过这个命令查看服务是否启动:ps -ef|grep ngnix
- 通过这个命令可以杀死进程(关闭Nginx服务器):kill -9 进程ID
访问ngnix服务器
访问方式:IP+端口号
- 在/usr/local/nginx/conf/文件夹下有一个nginx.conf文件,这个文件就是ngnix的配置文件
- 在这个文件里面设置ngnix监听的端口号:默认80端口
直接访问可能访问不到,因为Linux中有防火墙,下面对防火墙进行设置:
- 查看开放的端口号:firewall-cmd --list-all
- 设置开放端口号:sudo firewall-cmd --add-port=80/tcp --permanent
- 重启防火墙:firewall-cmd --reload
现在外部就可以访问80端口了
浏览器访问链接(我的虚拟机IP为192.168.1.101):
http://192.168.1.101/:80
- 由于80是默认端口,也可以省略不写
-
访问成功页面:
Nginx常用命令
注意:使用Nginix的命令的时候要先进入带Ngnix可执行文件的目录中去(和windows是一样的,不配置环境变量就要到bin目录下去执行命令),如果按照我们上面的安装位置来说,这个目录就在:
/usr/local/nginx/sbin
- 查看Ngnix版本号
命令:./nginx -v
- 启动Nginx
命令:./nginx
- 关闭Nginx
命令:./nginx -s stop
- 重新加载Nginx:修改配置文件之后,不重启直接重新加载时使用
命令:./nginx -s reload
Nginx配置文件(了解)
如果你把Nginx安装在/
usr/lib
目录下,配置文件的位置就在
/usr/local/nginx/conf/
文件夹下,名字为
nginx.conf
,这个文件就是nginx的配置文件
配置文件组成:
第一部分:全局块
位置:从配置文件开始到events块之间的内容
第二部分:events块
位置:events{ }
第三部分:http块
位置:http{ }
全局块
主要包括配置运行Nginx服务器的用户组,允许生成的worker process数,进程PID存放路径,日志存放路径以及配置文件的引入等
#user nobody;
worker_processes 1; //配置Ngnix处理并发的数量,越大,处理并发数量越多
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events块
主要影响Nginx服务器与用户网络连接
比如:
worker connections 1024;
,支持最大连接数为1024
这部分在使用中应该灵活配置
events {
worker_connections 1024;
}
http块
这部分是Nginx服务器中
配置最频繁的部分
,代理,缓存,日志定义,绝大多的数功能和第三方模块的配置都在这里。
-
注意:http块也可以包括:
http全局块
,
server块
-
http全局块
:配置的指令有,文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。 -
server块
:和虚拟主机有密切关系,虚拟主机从用户角度看和一台独立的计算机是一样的,该技术就是为了节约互联网服务器硬件成本。 - 每个http块可包含多个server块,每个server块就相当于一个虚拟主机
-
server块也可分为:
全局server块
,以及同时包含多个
location块
-
全局server块
:最常见的配置是虚拟主机的监听配置和本虚拟主机的名称或IP配置 -
location块
:一个server块中可以配置多个location块
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}