让nginx跑起来

  • 在linux ubuntu环境下的两种安装方案: yum / apt 安装、源码编译安装
  • 准备环境: linux服务器、gcc编译器、nginx源码
  • 获取nginx源码 : http://nginx.org
  • 编译安装nginx源码
  • 配置规则

1.在你的web服务器上 下载nginx( nginx-1.14.1 pgp) (990kb)

$ wget https://nginx.org/download/nginx-1.14.1.tar.gz

2.下载完成后,解压文件

$ tar zxvf nginx-1.14.1.tar.gz

3.检查是否有gcc编译器,在控制台输入gcc

pixel@ubuntu:~/Desktop/workspace/nginx-1.14.1$ gcc
gcc: fatal error: no input files
compilation terminated.

如果安装了gcc会提示错误信息: fatal error: no input files
否则会提示找不到gcc命令

如果没有安装gcc,先安装

$ sudo apt-get update
$ sudo apt-get install gcc

在nginx目录下执行 ./configure 检查当前编译环境

nginx待编译目录结构如下:
pixel@ubuntu:~/Desktop/workspace/nginx-1.14.1$ ll
总用量 756
drwxr-xr-x 8 pixel pixel   4096 11月  6 05:52 ./
drwxrwxr-x 4 pixel pixel   4096 11月 21 02:52 ../
drwxr-xr-x 6 pixel pixel   4096 11月  6 05:52 auto/
-rw-r--r-- 1 pixel pixel 287441 11月  6 05:52 CHANGES
-rw-r--r-- 1 pixel pixel 438114 11月  6 05:52 CHANGES.ru
drwxr-xr-x 2 pixel pixel   4096 11月  6 05:52 conf/
-rwxr-xr-x 1 pixel pixel   2502 11月  6 05:52 configure
drwxr-xr-x 4 pixel pixel   4096 11月  6 05:52 contrib/
drwxr-xr-x 2 pixel pixel   4096 11月  6 05:52 html/
-rw-r--r-- 1 pixel pixel   1397 11月  6 05:52 LICENSE
drwxr-xr-x 2 pixel pixel   4096 11月  6 05:52 man/
-rw-r--r-- 1 pixel pixel     49 11月  6 05:52 README
drwxr-xr-x 9 pixel pixel   4096 11月  6 05:52 src/
pixel@ubuntu:~/Desktop/workspace/nginx-1.14.1$ gcc
gcc: fatal error: no input files
compilation terminated.
通过 ./configure 开始检查编译环境

pixel@ubuntu:~/Desktop/workspace/nginx-1.14.1$ ./configure 
checking for OS
 + Linux 4.15.0-39-generic x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04) 

检查完编译环境,如果有缺失的库会在下面提示出来.
比如下面提示: 缺少PCRE库

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

也可能缺少其他库:比如 zlib

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

如果此时执行下一步编译 , 会提示 : make: *** 没有规则可制作目标“build”,由“default” 需求。 停止

pixel@ubuntu:~/Desktop/workspace/nginx-1.14.1$ make
make: *** 没有规则可制作目标“build”,由“default” 需求。 停止。

那么我们需要先把缺少的 PCRE 库和 zlib 库安装完,如果已经安装,请忽略这一步

$ sudo apt-get update 
$ sudo apt-get install libpcre3 libpcre3-dev 
$ sudo apt-get install zlib1g-dev
  • PCRE库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块需要靠它来解析正则表达式。另外,pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的.
  • zlib是一个压缩库,类似于zip。你在linux下看到的*.gz文件,就是用zlib压缩的

执行完./configure脚本之后,默认会在当前目录生成文件 Makefile
产生Makefile文件后,直接输入make命令进行编译,make会在当前目录查找Makefile文件.
找到后进行编译,下一步执行make install进行安装

1.$ make
2.$ make install

通过编译安装后,会在 /usr/local 下生成一个nginx目录

如通过yum安装,会在 /etc/ 下生成nginx目录
下面以编译方法举例:

  • /usr/local/nginx/sbin,找到nginx,此文件是可执行文件,用于启动nginx
$ cd /usr/local/nginx/sbin   
$ ./nginx          >>>>>>>>>>>>>启动文件
  • 启动nginx前还需要修改 nginx.conf 配置文件
    nginx的配置文件在 /usr/local/nginx/conf目录,进入目录找到并修改文件: nginx.conf
$ cd /usr/local/nginx/conf
$ cat nginx.conf   >>>>>>>>>>>>>编辑配置文件

nginx文件结构

... #全局块
events {         #events块
    ...
}
http #http块
{
    ... #http全局块
    server #server块
    {
        ... #server全局块
        location [PATTERN] #location块
        {
            ...
        }
        location [PATTERN]
        {
            ...
        }
    }
    server
    {
        ...
    }
    ... #http全局块
}
下面简单描述各个参数意义
#user nobody; --以什么用户身份启动nginx (手动编译这个参数默认是屏蔽状态,用yum安装这个是生效状态)
worker_processes 1;  --工作进程数(启动nginx时,会启动1个主管理进程,1个工作进程,工作进程默认数是1.当通过http访问nginx时,是工作进程在干活)
#error_log logs/error.log;  --日志以及输出地址
#pid logs/nginx.pid --进程管理 不用管
events {
    worker_connections 1024; --工作进程的最大连接数 不是专业的服务器运维这个不用管
}

http{        #配置http协议
    include mime.types; #引用其他配置文件
    default_type application/octet-stream; #默认以流的形式传输数据
    sendfile ##可以直接下载文件
    keepalive_timeout #连接超时时间
    gzin #是否启用压缩

      //配置反向代理需要添加upstream web_crm{}块
      //配置多个反向代理,以IP和端口区分
      upstream web_crm{
            server 127.0.0.1:8080;
            server 127.0.0.2:8080;
            server 127.0.0.3:8080;
            #//可以配置多个server做负载,智能管理,自动切换
      }
     upstream web_XXX{
            server 127.0.0.1:8090;
      }
    server{    --虚拟站点 可以有多个server块
             listen  --端口
             server_name  localhost 网址
             location / { --配置地址
                  root  html/monitor/;--配置根目录
                  index index.html index.htm   --配置首页
             }
             location /test/ { --配置子地址
                  root  html;--配置根目录
                  index text.html   --配置首页
             }
            location /crm/ {
                    proxy_pass http://web_crm/crm/;  
                    #--代理路径,格式: 协议://上面配置的upstream名字/所代理地址的子目录

                    proxy_redirect off;
                    proxy_set_header Host $host;
                    #/////////////////////////////////////////////////////////////////////////////////////
                    //这部分内容复制粘贴就好,作用是配置转发的信息头
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade; #代理webscoket流量
                    proxy_cache_bypass $http_upgrade;#代理webscoket流量

                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    #/////////////////////////////////////////////////////////////////////////////////////
                    #//热备配置(后期总结)
                    #//变量配置(后期总结)
                    # 详细参见 nginx配置学习资料.pdf
                    #/////////////////////////////////////////////////////////////////////////////////////
            }
    }
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容