CentOS服务器安装配置nginx及https环境、多域名转发

云服务器:阿里云CentOS7.3 64

Nginx的安装有两种方式,一种通过yum安装,一种通过下载Redis源代码编译安装。

一、yum安装Nginx

1、添加官方rpm源,在进行安装

[root@sihan ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Retrieving http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
warning: /var/tmp/rpm-tmp.myR0Nv: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:nginx-release-centos-7-0.el7.ngx ################################# [100%]
[root@sihan ~]# yum install -y nginx
Loaded plugins: fastestmirror
nginx                                                                                                            | 2.9 kB  00:00:00     
nginx/x86_64/primary_db                                                                                          |  42 kB  00:00:01     
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.14.2-1.el7_4.ngx will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================
 Package                     Arch                         Version                                     Repository                   Size
========================================================================================================================================
Installing:
 nginx                       x86_64                       1:1.14.2-1.el7_4.ngx                        nginx                       754 k

Transaction Summary
========================================================================================================================================
Install  1 Package

Total download size: 754 k
Installed size: 2.6 M
Downloading packages:
nginx-1.14.2-1.el7_4.ngx.x86_64.rpm                                                                              | 754 kB  00:00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : 1:nginx-1.14.2-1.el7_4.ngx.x86_64                                                                                    1/1 
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* http://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  Verifying  : 1:nginx-1.14.2-1.el7_4.ngx.x86_64                                                                                    1/1 

Installed:
  nginx.x86_64 1:1.14.2-1.el7_4.ngx                                                                                                     

Complete!
[root@sihan ~]# 

2、了解yum安装的nginx路径

一般来说我们只需要关注两个东西即可,一个是nginx.conf文件,一个是静态资源存放路径

[root@sihan ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
[root@sihan ~]# ls /usr/share/nginx/
html
[root@sihan ~]# ls /etc/nginx/
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf

3、启动nginx

[root@sihan ~]# service nginx start
Redirecting to /bin/systemctl start  nginx.service
nginx欢迎页

4、配置nginx.conf转将请求转发到tomcat首页

[root@sihan ~]# vi /etc/nginx/nginx.conf

添加upstream模块,并在根目录设置proxy_pass。设置好保存之后需要重启nginx。

http {
    upstream localhost {
        server 127.0.0.1:8080;
    }
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://localhost;
            root   html;
            index  index.html index.htm;
        }
}

效果如图所示


5、配置https

  • 1、首先你得拥有一个自己的域名并解析到服务器上,这是前提条件。
  • 2、这边我们选择阿里云提供的免费证书服务,这个只能指向一个域名。
    找到ssl证书



    点击购买证书



    选择免费证书

    购买成功后进入证书控制台,进行申请(证书为免费版,只能写一个域名,而且不能使用通配符)

    在域名解析中添加解析值(如果已经存在该记录类型的主机记录的解析,需要先删除,待验证完毕后再添加),验证成功后即可将解析删除。




    进入已签发页面,下载nginx版本的证书

    查看帮助文档,记录下https的配置
server {
 listen 443;
 server_name localhost;
 ssl on;
 root html;
 index index.html index.htm;
 ssl_certificate   cert/www.sihan1151.cn.pem;
 ssl_certificate_key   cert/www.sihan1151.cn.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 / {
     root html;
     index index.html index.htm;
 }
}

在Nginx的安装目录(/etc/nginx)下创建cert目录,并且将下载的全部文件拷贝到cert目录中。并修改nginx.conf的配置文件。这边我们做兼容http处理,自动将http请求转发至https。配置如下:(注意:yum安装的html目录在/usr/share/nginx/下,所以这里的root需要修改为:root /usr/share/nginx/html;)

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    upstream localhost {
        server 127.0.0.1:8080;
    }
    
    server {
        listen       80;
        server_name  www.sihan1151.cn;
        rewrite ^/(.*) https://$server_name$request_uri? permanent;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}

    }

    # HTTPS server
    #
    server {
         listen 443;
         server_name www.sihan1151.cn;
         ssl on;
         root html;
         index index.html index.htm;
         ssl_certificate   cert/www.sihan1151.cn.pem;
         ssl_certificate_key  cert/www.sihan1151.cn.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 / {
             root /usr/share/nginx/html;
             index index.html index.htm;
         }
         
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    }

}

至此,https算完成,可输入http请求测试效果:


6、nginx配置多域名转发

这个其实很简单,在http节点下配置多个server,每个server_name指向不同域名即可实现。如果项目做了前后端分离,还可以配置location下的root指向不同的文件夹。

    server {
        listen       80;
        server_name  a.sihan1151.cn;
        location / {
            root   html;
            index  index-a.html;
        }
    }
    server {
        listen       80;
        server_name  b.sihan1151.cn;
        location / {
            root   html;
            index  index-b.html;
        }
    }

二、下载Nginx源代码编译方式安装

1、安装依赖

  • 1、编译源码依赖 gcc 环境。
  • 2、PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。
  • 3、zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
  • 4、OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
[root@sihan ~]# yum install -y gcc-c++
[root@sihan ~]# yum install -y pcre pcre-devel
[root@sihan ~]# yum install -y zlib zlib-devel
[root@sihan ~]# yum install -y openssl openssl-devel

检查是否安装某依赖

[root@sihan ~]# rpm -qa|grep -i openssl
openssl-libs-1.0.2k-16.el7.x86_64
openssl-1.0.2k-16.el7.x86_64

2、查看并下载、解压Nginx

Nginx版本查看:http://nginx.org/download/

[root@sihan ~]# wget http://nginx.org/download/nginx-1.9.15.tar.gz
--2019-02-01 14:53:43--  http://nginx.org/download/nginx-1.9.15.tar.gz
Resolving nginx.org (nginx.org)... 95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 908984 (888K) [application/octet-stream]
Saving to: ‘nginx-1.9.15.tar.gz’

100%[==============================================================================================>] 908,984      373KB/s   in 2.4s   

2019-02-01 14:53:46 (373 KB/s) - ‘nginx-1.9.15.tar.gz’ saved [908984/908984]

[root@sihan ~]# tar -zxvf nginx-1.9.15.tar.gz -C /usr/local/
...

3、编译安装

进入解压目录编译安装,安装的默认目录是 /usr/local/bin/,需要root权限执行命令。可以使用 PREFIX=/XXX 参数指定安装目录,那有这个目录权限的普通用户也可以执行安装命令

[root@sihan ~]# cd /usr/local/nginx-1.9.15/
[root@sihan nginx-1.9.15]# ./configure
[root@sihan nginx-1.9.15]# make
[root@sihan nginx-1.9.15]# mkdir /usr/local/nginx/
[root@sihan nginx-1.9.15]# make PREFIX=/usr/local/nginx install

4、启动nginx

[root@sihan bin]# /usr/local/nginx/sbin/nginx

将nginx注册服务启动等可参考redis环境配置,这里不再做说明。

三、yum安装的nginx的卸载

如果是通过第二种方式安装的,直接删除以下文件夹即可。

[root@sihan init.d]# cd /usr/local/
[root@sihan local]# ls
aegis  bin  etc  games  include  lib  lib64  libexec  nginx  nginx-1.9.15  sbin  share  src  tomcat-base  tomcat-production
[root@sihan redis-5.0.3]# rm -rf /usr/local/nginx 
[root@sihan redis-5.0.3]# rm -rf /usr/local/nginx-1.9.15

下面展示的是yum安装的卸载

1、查看安装的nginx

[root@sihan ~]# yum list installed | grep nginx
nginx.x86_64                         1:1.14.2-1.el7_4.ngx            @nginx     
nginx-release-centos.noarch          7-0.el7.ngx                     installed  

2、卸载nginx

[root@sihan ~]# yum remove nginx
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.14.2-1.el7_4.ngx will be erased
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================
 Package                     Arch                         Version                                    Repository                    Size
========================================================================================================================================
Removing:
 nginx                       x86_64                       1:1.14.2-1.el7_4.ngx                       @nginx                       2.6 M

Transaction Summary
========================================================================================================================================
Remove  1 Package

Installed size: 2.6 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 1:nginx-1.14.2-1.el7_4.ngx.x86_64                                                                                    1/1 
  Verifying  : 1:nginx-1.14.2-1.el7_4.ngx.x86_64                                                                                    1/1 

Removed:
  nginx.x86_64 1:1.14.2-1.el7_4.ngx                                                                                                     

Complete!

3、验证

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

推荐阅读更多精彩内容