在Centos上编译安装nginx

实验环境:

OS: CentOS 6.6

nginx:nginx-1.6.2.tar.gz

前期准备:
安装开发包组件
[[email protected] tmp]# yum -y groupinstall "Development tools" "Server Platform Development"
[[email protected] tmp]# yum -y install pcre-devel

一、 编译安装:

[[email protected] tmp]# useradd -r nginx    //添加nginx系统用户
[[email protected] tmp]# tar xf nginx-1.6.2.tar.gz
[[email protected] tmp]# cd nginx-1.6.2
[[email protected] nginx-1.6.2]# ./configure --help        //获取帮助

[[email protected] nginx-1.6.2]#  mkdir -pv /var/tmp/nginx/{client,proxy,fastcgi,uwsgi}    //创建编译安装需要的目录

[[email protected] nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi

添加path路径

[[email protected] nginx]# echo  "export PATH=/usr/local/nginx/sbin/nginx:$PATH" > /etc/profile.d/nginx.sh

加载:

[[email protected] nginx]# . /etc/profile.d/nginx.sh

启动nginx

[[email protected] nginx]# /usr/local/nginx/sbin/nginx
[[email protected] nginx]# ss -tunlp | grep :80
tcp    LISTEN     0      128                    *:80                    *:*      users:(("nginx",52985,6),("nginx",52986,6))
[[email protected] nginx]#

查看nginx启动进程情况

[[email protected] nginx]# ps aux | grep nginx
root      52985  0.0  0.1  45044  1064 ?        Ss   03:54   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     52986  0.0  0.1  45472  1636 ?        S    03:54   0:00 nginx: worker process      
root      52991  0.0  0.0 103252   836 pts/8    S+   03:55   0:00 grep nginx
[[email protected] nginx]#
[[email protected] nginx]# /usr/local/nginx/sbin/nginx -h   //查看nginx 选项
nginx version: nginx/1.6.2
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

常用配置指令:
    server {
                }  //定义一个虚拟主机
                
    2、listen   //定义监听端口
                listen address[:port];
                listen port;
                
    3、server_name  NAME [...];         【定义服务器主机名----只能用在server中】        
            后可跟多个主机名:名称还可以使用正则表达式(~)或通配符,检查标准如下
                    (1)先做精确匹配检查;
                    (2)左侧通配符匹配检查;*.1inux.com
                    (3) 右侧通配符匹配检查;如 mail.*  
                    (4) 正则表达式匹配检查:如 ~^.*\.1inux.com\.com$
                    (5) default_server;
                
--------------------------------------------------------
编辑配置文件  在http {} 中添加如下:

server {
                listen 888;
                server_name 888.1inux.com;
                root "/vhost/888/html/";
        }

重新加载
[[email protected] nginx]# /usr/local/nginx/sbin/nginx -s reload
[[email protected] nginx]# ss -tnlp | grep nginx
LISTEN     0      128                       *:888                      *:*      users:(("nginx",6568,11),("nginx",7659,11))
LISTEN     0      128                       *:80                       *:*      users:(("nginx",6568,6),("nginx",7659,6))
[[email protected] nginx]#

添加主页面

# echo "<h1> This is 888.1inux.com </h1>" > /vhost/888/html/index.html

然后访问如图


--------------------------------------------------------

4、root path;
            设置资源路径映射;用于指明请求的URL所对应的资源所在的文件系统上的起始路径;
                【其使用范围:http, server, location,   if in location                 location 内的 优先级高于server】

5、location [  = | ~ | ~* | ^~ ] uri { ... }
                location @name { ... }
            使用范围: server, location
                
            功能:允许根据用户请求的URL来匹配定义的各location; 匹配到时,此请求将被响应的location配置块中的配置所处理,例如做访问控制等功能
                
                = : 精确匹配检查;
                ^~: RUI的前半部分匹配,不支持正则表达式;
                ~ : 正则表达式模式匹配检查,区分字符大小写;
                ~*: 正则表达式模块匹配检查,不区分字符大小写;

匹配的优先级:   精确匹配(=)   ^~     ~    ~*   不带任何符号的location;
-------------------------
eg:
创建目录及文件
[[email protected] /]# mkdir /vhost/{www,images/img} -pv
mkdir: created directory `/vhost‘
mkdir: created directory `/vhost/www‘
mkdir: created directory `/vhost/images‘
mkdir: created directory `/vhost/images/img‘
[[email protected] /]# echo "<h1> This is www.1inux.com </h1>" >/vhost/www/index.html

[[email protected] vhost]# tree /vhost
/vhost
|-- images
|   `-- img
|       |-- 1.jpg
|       |-- 2.jpg
|       `-- mylinux2.jpg
`-- www
    `-- index.html

在配置文件中添加如下:

        server {
                listen 888;
                server_name www.1inux.com;
                location / {
                        root "/vhost/www/";
                        }
                location /img/ {
                        root "/vhost/images/";
                        }
        }
[[email protected] nginx]# /usr/local/nginx/sbin/nginx -s reload
[[email protected] nginx]# ss -tnlp | grep "nginx"
LISTEN     0      128                       *:888                      *:*      users:(("nginx",18499,11),("nginx",18803,11))
LISTEN     0      128                       *:80                       *:*      users:(("nginx",18499,6),("nginx",18803,6))
[[email protected] nginx]#

注意 此时 使用root  定义  访问 http://www.1inux.com:888/img/1.jpg  实际访问的Web服务器路径是:/vhost/images/目录下的/img/1.jpg
--------------------------------

6、alias path;
        用于location配置段,定义路径别名

location /img/ {
                        root "/vhost/images/";
                        }
                        
        //http://www.1inux.com:888/img/2.jpg        ====》  /vhost/images/img/2.jpg
        //即  访问路径中的/img/对应的是   Web本地/vhost/images/目录下的目录
                        
                location /pic/ {
                        alias "/vhost/picture/";
                        }

//http://www.1inux.com:888/pic/2.jpg        ====》  /vhost/picture/2.jpg
                //即  访问路径中的/pic/目录对应的是   Web本地/vhost/picture/目录

7、index file;
                默认主页面;
                    index index.php index.html;

时间: 2024-10-07 09:12:37

在Centos上编译安装nginx的相关文章

在CentOS上编译安装Nginx+实验环境搭建+测试

0.说明 Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件,很有必要搭建实验环境来对其进行学习. 1.实验环境 本次实验的测试环境使用的宿主机操作系统为Windows 7,在Vmware虚拟机安装CentOS 6.5,说明如下: 宿主机操作系统Windows 7 虚拟机安装的操作系统CentOS 6.5 虚拟机操作系统上网方式NAT 而当使用NAT的方式进行上网时虚拟机.宿主机之间的网络连接关系可如下所示: 关于为什么网络拓扑结构是这样的,这

【apache http server安装】CentOS上编译安装Aapche Http Server详细过程

下载apache httpd # wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.10.tar.gz 2. 解压 apache httpd # tar xzvf httpd-2.4.10.tar.gz 编译apache httpd [[email protected]]# ./configure checkingfor chosen layout... Apache checkingfor working mkdir -p... yes

CentOS上编译安装OpenCV-2.3.1与ffmpeg-2.1.2

已测试环境: CentOS 6.3 32bit CentOS 6.5 64bit 曾经在CentOS 6.3 32bit安装过OpenCV,参见CentOS 6.3中安装OpenCV2.3.1,如今换了64bit系统,大刀阔斧,重新来一遍. 检查并安装相关程序,确保gtk安装成功,否则无法显示图片 yum install gcc-c++ # g++编译 yum install gtk-devel # 反正是gtk神马的,不一定就是gtk-devel,可以使用*gtk-devel*匹配 yum i

centos 7编译安装nginx

禁用防火墙 systemctl disable firewalld systemctl stop firewalld setenforce 0 安装pcre库 yum install pcre* 安装zlib库 yum install zlib* 增加nginx用户:useradd nginx -G nginx 编译安装nginx: ./configure --prefix=/usr/local/nginx --error-log-path=/var/log/nginx/error.log --

Linux的CentOS上如何安装nginx

1. 安装nginx前,首先要装好gcc和g++环境: 2. 在centOS上装nginx,需要PCRE.zlib和ssl的支持,出ssl外其他都需要从其官网上下载好,上传至服务器: 3. 接着将上传的PCRE.zlib.nginx包释放,安装ssl: tar -xvzf pcre-8.3.8.tar.gz tar -xvzf zlib-1.2.8.tar.gz tar -xvzf nginx-1.9.8.tar.gz yum -y install openssl -devel 4. 进入ngi

在CentOS上编译安装MySQL+安装问题解决+安全优化

0.说明 当然,MySQL的安装方法多种多样,在CentOS上,你可以采用YUM的方式安装,这样的好处是:快速方便.基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要YUM执行完成,那么MySQL也就可以使用了. 但我更倾向于使用编译的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助! 但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家,直到完成下面的

CentOS 7编译安装Nginx+MySQL+PHP

一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptables防火墙 yum install iptables-services #安装 vi /etc/sysconfig/ip

CentOS下编译安装Nginx

1.什么是Nginx Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用. 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易. 腾讯,另外知名的微网志Plurk也使用

服务器 CentOS上yum安装Nginx服务

一.更改yum源为网易的源加快速度 vi /etc/yum.repos.d/CentOS-Base.repo 更改内容如下 # CentOS-Base.repo # # This file uses a new mirrorlist system developed by Lance Davis for CentOS. # The mirror system uses the connecting IP address of the client and the # update status