Nginx学习

1.下载Nginx

我学习过程中用的是linux操作系统的,因为linux系统性能的原因,更适合做服务器,所以,教程也是以centos7来举例

Nginx官网:http://nginx.org/en/download.html

Nginx学习_第1张图片

我这里用的是稳定版:目前稳定版的最高版本是1.18.0

2.安装前的准备环境及安装

2.1环境要求

Centos7

Nginx-1.1.18.0.tar.gz

2.2安装nginx依赖的包

(1)gcc

nginx是c语言开发的,安装需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc

yum install gcc-c++

(2)PCRE

 PCRE(Perl Compatlble Regular Expressions)是一个Perl库,宝库perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以要在linux安装pcre库---》主要应用于动静分离

yum install -y pcre-devel

(3)zlib

zlib库提供了很多中解压和压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要再linux安装zlib库。

yum install -y zlib-devel

(4)openssl

OpenSSL是一个强大的安全套接字层密码库,包含主要的密码算法,,常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序测试或其它目的的使用

nginx不仅支持http协议,还支持https,所以需要再linux安装openssl库

yum install -y openssl-devel

Nginx学习_第2张图片

我这里面显示我都已经安装了,并且显示已经是最新版本了,之前我是没有安装过的,可能是之前学习docker的时候,更新了yum,所以里面的东西自动安装了,别的不用管,只要是安装了,就可以。

2.3解压拷贝

将下载的nginx上传到服务器,并进行解压,解压后将名字修改为nginx(可不做),拷贝到usr/local/src下

解压命令:tar -zxvf nginx-1.18.0.tar.gz

Nginx学习_第3张图片

2.4安装

进入到usr/local/src/nginx目录

cd /usr/local/src/nginx

在usr下创建nginx目录

mkdir /usr/nginx

运行configure

bash ./configure --prefix=/usr/nginx

make编译

make

编译安装

make install

2.5nginx目录说明

conf 配置目录

html静态文件

logs日志目录

sbin执行文件

2.6nginx的启动和停止

需要关闭防火墙

查看防火墙状态:firewall-cmd --state

进入到nginx的安装目录

cd /usr/nginx/sbin

运行nginx

./nginx

Nginx学习_第4张图片

我这里面是运行失败了,因为我的服务器运行了一个tomcat,tomcat的端口和nginx的端口冲突了,关闭了tomcat的端口,那么从新运行nginx就可以了。

查看是否运行nginx 

ps -ef|grep nginx

本地访问:出来以下页面,就说明安装并且启动成功了!!!

Nginx学习_第5张图片

停止nginx

./nginx -s stop

查看是否运行nginx

此时,就没有nginx的进程了。

nginx刷新[当用户修改了conf/nginx.conf,可以刷新,不需要重新启动]

./nginx -s reload

Nginx配置详解

配置这块不想写了,把配置文件内容放这里吧

   #    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;
    #        index  index.html index.htm;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    upstream zhangzhiyuan.ltd{
       server 47.96.139.165:9070 weight=1 max_fails=2 fail_timeout=30s;
       server 47.96.139.165:9080 weight=1 max_fails=2 fail_timeout=30s;
       server 47.96.139.165:9090 weight=1 max_fails=2 fail_timeout=30s;
       ip_hash;
     }
    #gzip  on;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    upstream zhangzhiyuan.ltd{
       server 47.96.139.165:9070 weight=1 max_fails=2 fail_timeout=30s;
       server 47.96.139.165:9080 weight=1 max_fails=2 fail_timeout=30s;
       server 47.96.139.165:9090 weight=1 max_fails=2 fail_timeout=30s;
       ip_hash;
     }
    #gzip  on;

    server {
        listen       80;
        server_name  zhangzhiyuan.ltd;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
           # root   html;
           # index  index.html index.htm;
           proxy_pass http://zhangzhiyuan.ltd;
        }

     #动静分离配置
        location ~* \.(css|js|html)$ {
          root resources; #可以使用相对路径和绝对路径 /usr/resources就是绝对路径
          expires 7d; #有效天数
       }

        location ~* \.(avi|txt|png|gif|jpg|mp3|mp4|rmvb|woff2|woff|ico){
             root resources;
             expires 20d;
       }
        #error_page  404              /404.html;

 

 

 

 

 

 

 

 


 

 

 

 

 

你可能感兴趣的:(Nginx学习)