nginx编译安装

一.安装前创建用户以及安装依赖包

1.软件依赖包安装

pcre-devel: perl语言正则表达式兼容软件包
openssl-devel:使系统支持https方式访问

yum install -y pcre-devel openssl-devel

 

2.创建虚拟用户

useradd www -s /sbin/nologin/ -M

 

 

3.下载并解压nginx软件

cd /server/tools&& cd /server/tools
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar xf nginx-1.12.2.tar.gz

 

 

二.编译安装nginx

1.编译配置

./configure --prefix=/application/nginx-12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module

 

--prefix=PATH           指定软件安装在什么目录下

--user=USER             指定软件worker进程管理用户,利用www虚拟用户管理worker进程
--group=USER
--with-http_ssl_module        使nginx程序可以支持HTTPsF访问功能
--with-http_stub_status_module    用于监控用户访问nginx服务情况

 

2.编译过程

 

3.编译安装

make && make install

 

4.创建软连接

ln -s /application/nginx-12.2 /application/nginx

 

5.启动nginx

/application/nginx/sbin/nginx    #启动

 

/application/nginx/sbin/nginx -t  查看配置是否正确

 

6.精简nginx.conf配置文件内容:

grep -Ev "#|^$" nginx.conf.default >nginx.conf

 

 

7.nginx配置文件组成:

  ①. main nginx主区块
  ②. event nginx事件区块
  ③. http nginx http功能区块
  ④. server nginx 网站主机区块
  ⑤. location nginx 匹配或者定位区块

 

html --- nginx程序站点目录
logs --- nginx程序日志文件保存目录
sbin --- nginx程序命令所在目录

8.nginx命令参数说明

  -V --- 查看nginx软件编译配置参数
  -t --- 检查nginx配置文件语法格式是否正确
  -s --- 用于管理nginx服务运行状态
    stop 停止nginx服务
    reload 平滑重启nginx服务器


  重启nginx服务
    nginx -s stop 先停止     ( /application/nginx/sbin/nginx -s  stop )
    nginx 再启动             ( /application/nginx/sbin/nginx )

三.编写nginx服务配置

1.实现编写一个网站页面

[root@web01 ~]# cat /application/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
            listen       80;
            server_name  www.augustyang.org;
            location / {
                root   html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
            }
        }
}

2.实现编写多个网站页面,编写多个虚拟主机, 这样便于管理每个虚拟虚拟主机 (基于域名的虚拟主机),还有基于端口基于ip

 

1)编写多个站点

mkdir -p /application/nginx/html/{www,bbs,blog}

 

2)创建站点目录下首页文件:

for name in www bbs blog;do echo "10.0.0.7 $name.augustyang.org" >/application/nginx/html/$name/index.html;done
[root@web01 extra]# for name in www bbs blog;do cat /application/nginx/html/$name/index.html;done
10.0.0.7 www.augustyang.org
10.0.0.7 bbs.augustyang.org
10.0.0.7 blog.augustyang.org

 

3)配置虚拟主机

mkdir -p /application/nginx/conf/extra1
touch  /application/nginx/conf/extra1/{bbs,blog,www}.conf
[root@web01 extra1]# pwd
/application/nginx/conf/extra1
[root@web01 extra1]# cat *
    server {
        listen       80;
        server_name  bbs.augustyang.org;
        location / {
            root   html/bbs;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  blog.augustyang.org;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
    }
    server {
    listen       80;
    server_name  www.augustyang.org;
    location / {
        root   html/www;
        index  index.html index.htm;
    }
    }

4)配置hosts 解析

[root@web01 extra1]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.7    www.augustyang.org
172.16.1.7    bbs.augustyang.org
172.16.1.7     blog.augustyang.org

5)修改nginx.conf文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include  extra1/www.conf;
    include  extra1/bbs.conf;
    include  extra1/blog.conf;
}

6)访问测试

[root@web01 extra1]# curl bbs.augustyang.org
10.0.0.7 bbs.augustyang.org
[root@web01 extra1]# curl www.augustyang.org
10.0.0.7 www.augustyang.org
[root@web01 extra1]# curl blog.augustyang.org
10.0.0.7 blog.augustyang.org

 7)基于端口的虚拟主机

[root@web01 extra1]# pwd
/application/nginx/conf/extra1
[root@web01 extra1]# cat *
    server {
        listen       80;
        server_name  bbs.augustyang.org;
        location / {
            root   html/bbs;
            index  index.html index.htm;
        }
    }
    server {
        listen       81;
        server_name  blog.augustyang.org;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
    }
    server {
    listen       82;
    server_name  www.augustyang.org;
    location / {
        root   html/www;
        index  index.html index.htm;
    }
    }

8) 测试   (基于端口的虚拟主机测试)

[root@web01 extra1]# curl  bbs.augustyang.org
10.0.0.7 bbs.augustyang.org
[root@web01 extra1]# curl  blog.augustyang.org:81
10.0.0.7 blog.augustyang.org
[root@web01 extra1]# curl  www.augustyang.org:82
10.0.0.7 www.augustyang.org

  备注 当访问不存在的时候, 会默认跳转到80端口的虚拟主机 

[root@web01 extra1]# curl www.augustyang.org
10.0.0.7 bbs.augustyang.org

 需要注意的是:nginx服务中只要涉及IP地址的修改,都需要重启nginx服务,而不能采用平滑重启

 四.nginx 的日志服务(错误日志及访问日志)

 五.nginx 的location及rewrite

 

原文地址:https://www.cnblogs.com/augustyang/p/10103421.html