linux nginx简单教程

nginx的简介

  1. 常用的web服务器简介

web服务器常常被称之为www(world wide web)服务器,HTTP服务器,其主要功能是提供

网上信息浏览服务,Linux和uninx平台下常用的web服务器有Apache、Nginx、Lighttpd、Tomcat

等,下图是http://www.netcraft.com网站2014年最近统计的各web服务器的市场占有率。

从上图可以看出apache一直在web服务器上占有"老大的位置",主要优势在于源代码的开放,有一

支开放的开发队伍,支持跨平台的应用,以及可移植性等。Microsoft 的IIS,IIS是一组服务组件

包括web服务器,ftp服务器,smtp服务器等。

Nginx由于出现的比较晚,市场份额一直处于上升的地步,截至目前,大概占据14.47%。

相对于其他web服务,Nginx主要以下的优势.

1.Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freebsd)网络I/O模型,支持高并发连接

Apache使用的则是传统的select模型,子进程的派生需要消耗的cpu资源较Nginx大的多。

2.内存消耗更小,Nginx+PHP(Fastcgi)在3万并发连接下,开启10个nginx进程,消耗的内存为150M.

3.成本低廉,Nginx遵循BSD开源协议,可以免费使用,并且可用于商业用途

4.配置简单,支持URL等重写功能

2.编译安装Nginx

Nginx是开源软件,可以安装在Microsoft、Unix、Linux等系统上,此处介绍在centos6.6_x86-64

编译安装nginx1.6.2版本,当然你也可以安装其他版本的。nginx官网地址为:www.nginx.org

在官网上可以看到在支持的各个版本,nginx的编译安装需要准备好编译环境,需要的环境,根据

所选择的Nginx功能而不同,主要准备gcc等,nginx支持第三方模块,如果gzip如果安装zlib库等,

以下是我编译时准备的开发环境。

 yum groupinstall "Development Tools" "Server Platform Development"
 yum install -y zlib zlib-devel openssl openssl-devel 
 yum install -y pcre-devel

使用./configure --help可以查看各个选项及其意义

在安装nginx前先创建nginx用户和nginx组,以nginx用户身份来运行nginx的worker process进程

useradd -M -s /sbin/nologin nginx
./configure --prefix=/application/nginx \        #将nginx安装在/application/nginx目录下
--user=nginx \                       #以nginx用户来运行worker process进程
--group=nginx --with-http_ssl_module \            #支持ssl功能
--with-http_flv_module \            #支持flv功能
--with-http_gzip_static_module      #支持gzip压缩
make
make install

可以根据自身想实现的功能选择相应的选项即可,提醒各位在编译安装每一步的时候,查看是否

有错误出现,要解决各个错误后在进行下一步,不然最后编译好了无法使用,回头查看的时候第

一步就出错了。

编译好后,可以查看/application/nginx目录,会发现下面的内容很少。

3.Nginx的启动、停止、平滑重启

Nginx启动命令位于/application/nginx/sbin目录下的唯一一个启动脚本nginx,启动不需要加任

何参数

/application/nginx/sbin/nginx即可,如果配置文件编译时安装在其他目录下,可以使用-c选项

制定其目录,默认会寻找编译目录/application/nginx目录下的conf目录下的nginx.conf,启动后

可以查看服务进程

各位看到的可能只有一个master process 和一个worker process,我这看到3个是因为我修改了

nginx.conf的worker_processes  3;

如果看到以上信息则表面nginx启动正常,如果没有看到,请检查报错信息,此时查看网页,地址

栏中输入nginx服务主机地址,可以看到welcome to nginx的信息,表面访问成功。

nginx停止,可以使用 /application/nginx/sbin/nginx -s stop命令,也可以发送信号,如

kill - QUIT Nginx主进程号

Nginx平滑启动,可以使用 /application/nginx/sbin/nginx -s reload命令,或发送信号如

kill -HUP Nginx主进程号,推荐/application/nginx/sbin/nginx -s reload方式

4.Nginx虚拟主机配置

虚拟主机使用的是一种软硬件技术,把一台运行在internet上的服务器主机分成一台台"虚拟"

的主机,每台虚拟主机都可以是一个独立的网站,具有完整的服务器功能。在Nginx配置文件(nginx.conf)中,每个server中就是一个虚拟主机,如下:

http{
        server {
                listen 80;
                server_name www.v3.com *.v3.com;
                access_log logs/access.log combined;
        location /{
                        index index.html index.htm;
                        root html/v3;
                }
        }    
}

注意:在nginx中每行后面要有;(分号)作为每行的结束符使用/application/nginx/sbin/nginx -t

会报错,例如:

生产中切记,每次修改后要先检测是否有错误再重启。

4.1 基于域名的虚拟主机的配置

基于域名的虚拟主机是最常见的一种虚拟主机,多个虚拟主机可以共享同一个ip地址,有效解决了

ip地址不足的问题,测试配置如下:

http {
        server {
                listen 80;                        #监听的端口
                server_name www.v1.com;
                access_log logs/access.log combined;   #访问日志存放的位置
                location /{
                        index index.html index.htm;  #会从左到右查找首页文件
                        root html/v1;                # 网页文件存放的位置
                }
        }
        server {
                listen 80;
                server_name www.v2.com;
                access_log logs/access.log combined;
                location /{
                        index index.html index.htm;
                        root html/v2;
                }
        }
        server {
                listen 80;
                server_name www.v3.com *.v3.com;
                access_log logs/access.log combined;
        location /{
                        index index.html index.htm;
                        root html/v3;
                }
        }
}

以上路径使用的是相对路径,相对于安装目录,在v1、v2、v3目录下分别放置了3个首页文件

下面我们使用crul命令来测试各个域名的文件

可以看到各个域名的首页文件的内容

4.2 基于IP地址的虚拟主机的配置

很容易理解,基于IP的虚拟主机就是一个IP地址上运行一个虚拟主机,由于手上没有那么多的主机

在此我将同一台主机上的一个网卡通过别名的方式配置了多个别名,每个别名上配置了一个ip地址

命令为:

ifconfig eth0:1 192.168.1.6 broadcast 192.168.1.255 netmask 255.255.255.0 up
ifconfig eth0:2 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0 up

http {
        server {
                listen 192.168.1.3:80;
                server_name 192.168.1.3;
                access_log logs/access.log combined;
                location /{
                        index index.html index.htm;
                        root html/v1;
                }
        }
        server {
                listen 192.168.1.6:80;
                server_name 192.168.1.6;
                access_log logs/accesss.log combined;
                location /{
                        index index.html index.htm;
                        root html/v2;
                }
        }
        server {
                listen 192.168.1.7:80;
                server_name 192.168.1.7;
                access_log logs/access.log combined;
                location /{
                        index index.html index.htm;
                        root html/v3;
                }
        }
    }

再次使用crul命令查询,如下:

以上就是基于IP的虚拟主机。

4.3 基于端口的虚拟主机

基于端口就是同一个ip地址不同的端口来创建虚拟主机,如

http {
        server {
                listen 80;
                server_name 192.168.1.3;
                access_log logs/access.log combined;
                location /{
                        index index.html index.htm;
                        root html/v1;
                }
        }
        server {
                listen 8081;
                server_name 192.168.1.6;
                access_log logs/accesss.log combined;
                location /{
                        index index.html index.htm;
                        root html/v2;
                }
        }
        server {
                listen 8080;
                server_name 192.168.1.7;
                access_log logs/access.log combined;
                location /{
                        index index.html index.htm;
                        root html/v3;
                }
        }
    }

时间: 2024-10-21 03:54:11

linux nginx简单教程的相关文章

最全面 Nginx 入门教程 + 常用配置解析

转自 http://blog.csdn.net/shootyou/article/details/6093562 Nginx介绍和安装 一个简单的配置文件 模块介绍 常用场景配置 进阶内容 参考资料 == Nginx介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称. Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx

【Nginx】--nginx入门教程

nginx入门教程 一.概述    什么是nginx?   Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器.   什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器. 二.常用命令 nginx 的使用比较简单,就是几

Linux Capabilities 入门教程:概念篇

原文链接:Linux Capabilities 入门教程:概念篇 Linux 是一种安全的操作系统,它把所有的系统权限都赋予了一个单一的 root 用户,只给普通用户保留有限的权限.root 用户拥有超级管理员权限,可以安装软件.允许某些服务.管理用户等. 作为普通用户,如果想执行某些只有管理员才有权限的操作,以前只有两种办法:一是通过 sudo 提升权限,如果用户很多,配置管理和权限控制会很麻烦:二是通过 SUID(Set User ID on execution)来实现,它可以让普通用户允许

nginx入门教程

nginx入门教程 一.概述    什么是nginx?   Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器.   什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器. 二.常用命令 nginx 的使用比较简单,就是几

Nginx系列教程(二)| 一文带你读懂Nginx的正向与反向代理

作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. LAMP 系列教程(四)| MySQL 数据库系统(一) 05. LAMP 系列教程(五)| MySQL 数据

Nginx系列教程(三)| 一文带你读懂 Nginx 的负载均衡

作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. LAMP 系列教程(四)| MySQL 数据库系统(一) 05. LAMP 系列教程(五)| MySQL 数据

centos6 LNMP的搭建(linux+nginx+mysql+php)

LNMP的搭建(linux+nginx+mysql+php) 简介 LNMP代表的就是:Linux系统下Nginx+MySQL+PHP网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Mysql是一个小型关系型数据库管理系统. PHP是一种在服务器端执行的嵌入HTML文档

LAMP架构演进到LAMPGC,再演进到LNMLGC(linux+nginx+mysql+lua+gearman+C)

LAMP是一个大众的架构了,linux+apache+mysql+php 在我们系统的架构中,做了进一步的演进,linux+apahce+mysql+php+gearman+C php作页面的展示 核心业务逻辑由C语言实现,php通过gearman中间件调用C任务 由于apache在高并发方面不太给力,因此在需要高并发的场景中,我们进一步演进,linux+nginx+mysql+php+lua+gearman+C 页面部分由nginx+fastcgi+php-fpm来展示 高并发的业务调用由ng

centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)

centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多, 我们学习PHP,以及搭建我们自己的LNMP环境,不妨先在本机上尝试学习,下面我们一步一步来完成在CentOS7 下安装LNMP(Linux+Nginx+MySQL+PHP)及Apache. 查