nginx——linux环境下载安装使用

最近在部署项目包括申请环境之类的东西,感触倒是也比较多,总想着记一记笔记。但是因为种种原因一拖再拖。今天终于下定决定从头整理。
几年前上家公司做过部署,但是因为规模小,所以所谓的服务器倒也是windows系统,当时也整理了线上环境搭建的简单过程。简单的线上环境搭建教程
不过这次部署是linux系统,并且用到了一直传说中的docker,差别蛮大的。这次是从一个空服务器开始的,整体分为三块:

  • nginx下载安装使用
  • docker私库创建
  • docker启动

Nginx下载

下载地址是这个:
http://nginx.org/en/download.html
我这边下载的是linux系统的稳定版:

image.png

下载完之后我这边的安装是完全按照推荐路径来的,也就是/usr/local/nginx。第一次头铁想要自定义路径,后来发现和现有的各种教程有出入,改来改去贼麻烦,也就认输了。然后nginx需要一些依赖,我们在安装之前下载就行:
这里说个插曲,因为我们这个服务器是公司提供的,一开始下载依赖都会报错,后来发现是服务器设置的问题,找了安全团队解决的。之所以这里单独说下是因为一开始不敢确定是啥问题,自己鼓捣好久,总是怀疑是我命令或者操作有问题。浪费了一些时间,反正大家以后如果看到这个报错,可以第一时间往网络上想。
下载依赖报错

继续说nginx所需要的依赖:

  1. gcc环境:

yum install gcc-c++

  1. pere(解析正则的一个三方包)

yum install -y pcre pcre-devel

  1. zlib(压缩和解压的一个包)

yum install -y zlib zlib-devel

  1. openssl(如其名,用于支持https请求的一个三方包)

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

nginx安装过程

解压

首先第一步下载的nginx包传到服务器上,解压到推荐目录下(这个目录其实是有点讲究的,属于约定俗成的一个东西,usr算是linux的系统级目录,一般用户自己安装的软件都建议放在/usr/local下。):

tar -xvf nginx-1.14.0.tar.gz -C /usr/local

解压nginx

创建makeFile文件

解压完成后,进入到/usr/local/nginx-xxx目录下(如果你的解压地址和我上面说的一样)然后执行下面这一串命令:

./configure
--prefix=/usr/local/nginx
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
--with-http_stub_status_module
--with-http_ssl_module
--with-file-aio
--with-http_realip_module

需要注意的是如果报错:bash: ./configure: No such file or directory。
那我的建议是如下两步操作:

  • 检查我们的nginx解压包里有没有configure,可以用如下命令:

find -name configure

  • 在/usr/local/下创建nginx目录,命令如下:

mkdir nginx

这几步没啥难度,但是需要注意目录切换。


image.png

确定nginx源码目录下有makefile文件即可


image.png

创建临时文件目录

mkdir /var/temp/nginx -p

然后在nginx源码目录下编译和安装即可,命令如下(感觉执行第二个的时候没啥效果,不过因为我当时两个都执行了,所以无法验证第二个命令到底是不是必须的了):


image.png

make
make install

然后我们打开/usr/local/nginx的目录结构,如果包括cong,html,sbin。说明应该没问题。其中sbin中是执行文件,conf是配置文件。html是页面。

nginx命令

上面应该是安装完了,下面我们可以启动下试试,注意这个命令在sbin目录下执行

./nginx

正常来讲这个时候nginx就可以启动了。然后这里如果报各种乱七八糟的问题,可以针对性百度或者排查。比如如果显示端口被占用,可以考虑是不是80端口被占用了,我们可以搜一下:

netstat -ntlp

我个人当时就遇到了这个问题,这里建议最开始用nginx默认的配置文件启动。因为默认的没啥配置,可以排除因为配置文件写的有问题启动不了。然后确定nginx启动没问题了,我们再去修改配置文件,一点点做成我们想要的配置。
下面列几个我们常用的命令:

  1. 启动nginx:

./nginx

  1. 刷新nginx配置文件:

./nginx -s reload

  1. 停止nginx:

./nginx -s stop

  1. nginx的启动/停止都要在sbin目录下执行
  2. nginx 的配置文件位于/usr/local/conf目录下的nginx.conf文件

至于nginx的配置,说简单也简单,说难也挺复杂。反正我是多次重启反复尝试才算是配置了一个勉强能用的配置文件。个人建议就是遇到问题百度吧,我这边把配置文件贴出来分享下:

worker_processes  4;
error_log  logs/error.log  debug;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens on;
    server_names_hash_bucket_size 64;
    server_names_hash_max_size 2048;
    sendfile on;
    
    server {
        listen 443 ssl;
        server_name cnbu.xxx.com; 
        rewrite ^/$ https://cnbu.xxx.com/xxx-ui/ permanent; 
        root html;
        index index.html index.htm;
        ssl_certificate cnbu_xxx_com.crt;
        ssl_certificate_key cnbu_xxx_com.key;   
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   
        ssl_prefer_server_ciphers on;
        location /xxx-ui/ {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
            fastcgi_intercept_errors on;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
            proxy_pass http://10.96.178.81:81/xxx-ui/;
            proxy_set_header        Host                    $http_host;
            proxy_set_header        X-Real-IP               $remote_addr;
            proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto       $scheme;
            proxy_set_header        X-Forwarded-Port        $server_port;
            proxy_connect_timeout 300s;
            proxy_send_timeout 300s;
            proxy_read_timeout 300s;
        }
    }


    server {
        listen       80;
        server_name  localhost;

        location / {
            return 301 https://cnbu.xxx.com; 
        }
        location /admin {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
            fastcgi_intercept_errors on;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
            proxy_pass http://10.96.178.81:1338;
            proxy_set_header        Host                    $http_host;
            proxy_set_header        X-Real-IP               $remote_addr;
            proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto       $scheme;
            proxy_set_header        X-Forwarded-Port        $server_port;
            proxy_connect_timeout 300s;
            proxy_send_timeout 300s;
            proxy_read_timeout 300s;    
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

至此,这个nginx就搭建完成。本篇笔记就到这里,如果对你稍有帮助记得点个喜欢点个关注。大家工作愉快吧~!

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

推荐阅读更多精彩内容