业务的来源于是,公司要将网站从http升级到https,由于历史遗留原因,才发现现有的nginx是由此源码安装的,并从未设置ssl模块,要求现安装sll模块,那个nginx是全体公司最前端的一个代理,涉及到广大单位,因为事先未曾操作过,依旧小心点为妙,下边是在虚拟机上演示的。

事务的根源是,公司要将网站从HTTP升级到HTTPS,由于历史遗留原因,才察觉现有的Nginx是通过源码安装的,并不曾设置SSL模块,须要现安装SSL模块,那么些Nginx是全部公司最前端的二个代理,涉及到众多部门,因为前边没有操作过,依旧小心点为妙,下边是在编造机上演示的。

nginx能够行使各平台的暗中认可包来安装,本文是介绍使用源码编写翻译安装,包罗具体的编写翻译参数音信。

nginx可以利用各平台的默许包来设置,本文是介绍使用源码编写翻译安装,包涵实际的编写翻译参数新闻。

1,先安装前面所需的一些包

1,先安装前边所需的有的包

正规初叶前,编写翻译环境gcc g++
开发库之类的急需超前装好,那里私下认可你早已装好。

专业启幕前,编写翻译环境gcc g++
开发库之类的内需超前装好,那里暗中认可你早已装好。

yum install gcc-c++
yum install pcre pcre-devel  
yum install zlib zlib-devel  
yum install openssl openssl--devel  

yum install gcc-c++
yum install pcre pcre-devel 
yum install zlib zlib-devel 
yum install openssl openssl–devel 

ububtu平台编写翻译环境足以运用以下指令

ububtu平台编写翻译环境足以选取以下指令

2,下载nginx源码

2,下载nginx源码

apt-get install build-essential
apt-get install libtool
apt-get install build-essential
apt-get install libtool
wget -c https://nginx.org/download/nginx-1.11.4.tar.gz 

wget -c

centos平台编写翻译环境使用如下指令

cento平台编译环境使用如下指令

3,解压,编译,安装

3,解压,编译,安装

安装make:

安装make:

tar -zxvf nginx-1.11.4.tar.gz
cd nginx-1.11.4
./configure
make
make install

tar -zxvf nginx-1.11.4.tar.gz
cd nginx-1.11.4
./configure
make
make install

yum -y install gcc automake autoconf libtool make
yum -y install gcc automake autoconf libtool make

4,安装成功后,就能够在浏览器中走访了,暗中同意安装在/usr/local/nginx 上面

4,安装成功后,就足以在浏览器中做客了,私下认可安装在/usr/local/nginx 上边

安装g++:

安装g++:

澳门金沙国际 1

澳门金沙国际 2

yum install gcc gcc-c++
yum install gcc gcc-c++

5,由于用的是暗中认可安装,我们因而命令查看nginx蕴涵的模块,并不曾ssl模块

5,由于用的是私下认可安装,我们透过命令查看nginx包罗的模块,并不曾ssl模块

上边正式启幕

相似大家都要求先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。
1.选定源码目录
能够是别的目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE
源码包,使用下边发号施令下载编译和装置 PCRE 包:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz

http://exim.mirror.fr/pcre/ 手动下载



tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make
make install

3.安装zlib库
 下载最新的 zlib
源码包,使用上边发号施令下载编写翻译和设置 zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

源码安装以及持续升级HTTPS,源码安装以及后续升级https。4.装置ssl(某个vps默许没装ssl)

cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz

5.安装nginx

Nginx
一般有五个版本,分别是稳定版和开发版,您能够遵照你的目标来抉择那多个版本的里边2个,上边是把
Nginx 安装到 /usr/local/nginx 目录下的事无巨细步骤:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz

tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0

./configure --sbin-path=/root/tools/nginx/nginx 
--conf-path=/etc/nginx/nginx.conf 
--pid-path=/usr/local/nginx/nginx.pid 



./configure --sbin-path=/usr/local/nginx/nginx 
--conf-path=/etc/nginx/nginx.conf 
--pid-path=/usr/local/nginx/nginx.pid 
--with-http_ssl_module 
--with-pcre=/usr/local/src/pcre2-10.21 
--with-zlib=/usr/local/src/zlib-1.2.8 
--with-openssl=/usr/local/src/openssl-1.0.1c

make
make install

–with-pcre=/usr/src/pcre-8.34 指的是pcre-8.34 的源码路径。
–with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。

安装成功后 /usr/local/nginx 目录下如下

fastcgi.conf            koi-win             nginx.conf.default
fastcgi.conf.default    logs                scgi_params
fastcgi_params          mime.types          scgi_params.default
fastcgi_params.default  mime.types.default  uwsgi_params
html                    nginx               uwsgi_params.default
koi-utf                 nginx.conf          win-utf

6.启动
保障系统的 80 端口没被别的程序占用,运营/usr/local/nginx/nginx
命令来运行 Nginx,

netstat -ano|grep 80

假使查不到结果后实施,有结果则忽略此步骤(ubuntu下必须用sudo运行,不然只可以在前台运维)

sudo /usr/local/nginx/nginx

开拓浏览器访问此机器的 IP,如若浏览器出现 Welcome to nginx! 则意味着 Nginx
已经安装并运营成功。

澳门金沙国际 3


到那边nginx就安装完毕了,假使只是处理静态html就不要继续设置了

倘诺你必要处理php脚本的话,还索要安装php-fpm。

下边安装排错

附:也许蒙受的荒谬和局地增派新闻

1.1编译pcre错误

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] Error 1
make[1]: Leaving directory `/usr/local/src/pcre-8.34'
make: *** [all] Error 2

澳门金沙国际 4

化解办法:安装g++,别忘了重新configure

apt-get install g++
apt-get install build-essential
make clean
./configure
make

1.2 make出错

make: *** No rule to make target `build', needed by `default'.  Stop.
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.

根据第6步的安装方式或
ubuntu下

apt-get install openssl
apt-get install libssl-dev

centos下

yum -y install openssl openssl-devel

2.nginx编写翻译选项

make是用来编写翻译的,它从Makefile中读取指令,然后编译。

make install是用来安装的,它也从Makefile中读取指令,安装到钦点的岗位。

configure命令是用来检查和测试你的装置平台的靶子特征的。它定义了系统的种种方面,包罗nginx的被允许利用的接连处理的格局,比如它会检查和测试你是否有CC或GCC,并不是索要CC或GCC,它是个shell脚本,执行完结时,它会创设3个Makefile文件。nginx的configure命令扶助以下参数:

  • --prefix=path   
    定义贰个索引,存放服务器上的文本 ,也正是nginx的装置目录。暗许使用 /usr/local/nginx。
  • --sbin-path=path 设置nginx的可执行文件的路子,暗中认可为
     prefix/sbin/nginx.
  • --conf-path=path  设置在nginx.conf配置文件的门径。nginx允许行使差别的配置文件运转,通过命令行中的-c选项。暗许为prefix/conf/nginx.conf.
  • --pid-path=path  设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为``prefix/logs/nginx.pid.
  • --error-log-path=path 设置主错误,警告,和确诊文件的名目。安装实现后,能够随时变动的文书名
    ,在nginx.conf配置文件中 使用 的error_log指令。暗许意况下,文件名
    prefix/logs/error.log.
  • --http-log-path=path 
    设置主请求的HTTP服务器的日记文件的称呼。安装完结后,能够随时变动的文书名
    ,在nginx.conf配置文件中 使用 的access_log指令。暗中认可景况下,文件名
    prefix/logs/access.log.
  • --user=name 
    设置nginx工作历程的用户。安装实现后,能够随时变动的名目在nginx.conf配置文件中
    使用的 user指令。暗许的用户名是nobody。
  • --group=name  设置nginx工作经过的用户组。安装完结后,能够每2二二十日变动的名目在nginx.conf配置文件中
    使用的 user指令。暗许的为非特权用户。
  • --with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
  • --with-poll_module --without-poll_module 启用或剥夺创设叁个模块来允许服务器使用poll()方法。该模块将电动建立,要是平台不辅助的kqueue,epoll,rtsig或/dev/poll。
  • --without-http_gzip_module —
    不编写翻译压缩的HTTP服务器的响应模块。编写翻译并运维此模块须求zlib库。
  • --without-http_rewrite_module 
    不编写翻译重写模块。编写翻译并运营此模块必要PCRE库扶助。
  • --without-http_proxy_module — 不编译http_proxy模块。
  • --with-http_ssl_module —
    使用https协议模块。暗许情形下,该模块没有被营造。建立并运营此模块的OpenSSL库是不可或缺的。
  • --with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 –
    8.30)须求从PCRE网站下载并解压。别的的劳作是Nginx的./
    configure和make来成功。正则表明式使用在location指令和
    ngx_http_rewrite_module 模块中。
  • --with-pcre-jit —编译PCRE包含“just-in-time
    compilation”(1.1.12中, pcre_澳门金沙国际,jit指令)。
  • --with-zlib=path —设置的zlib库的源码路径。要下载从
    zlib(版本1.1.3 – 1.2.5)的并解压。别的的劳作是Nginx的./
    configure和make完毕。ngx_http_gzip_module模块需要利用zlib 。
  • --with-cc-opt=parameters —
    设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上利用PCRE库时索要选拔:--with-cc-opt="-I /usr/local/include。.如需求需求追加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
  • --with-ld-opt=parameters —设置附加的参数,将用以在链接时期。例如,当在FreeBSD下行使该系统的PCRE库,应内定:--with-ld-opt="-L /usr/local/lib".

一级实例(上面为了呈现必要写在多行,执行时内容要求在同一行)

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3

下边正式启幕

诚如我们都亟待先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。
1.选定源码目录
能够是其余目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE
源码包,使用下面发号施令下载编写翻译和安装 PCRE 包:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install

3.安装zlib库
 下载最新的 zlib
源码包,使用上边发号施令下载编写翻译和装置 zlib包:

cd /usr/local/src
 
wget http://zlib.net/zlib-1.2.7.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install

4.安装ssl(某个vps默许没装ssl)

cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz

5.安装nginx

Nginx
一般有五个版本,分别是稳定版和开发版,您能够遵照你的目标来摘取那三个版本的在那之中贰个,上面是把
Nginx 安装到 /usr/local/nginx 目录下的详尽步骤:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.2.8.tar.gz
tar -zxvf nginx-1.2.8.tar.gz
cd nginx-1.2.8
./configure --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf\
  --pid-path=/usr/local/nginx/nginx.pid  --with-http_ssl_module\
  --with-pcre=/usr/local/src/pcre-8.21  --with-zlib=/usr/local/src/zlib-1.2.7\
 --with-openssl=/usr/local/src/openssl-1.0.1c
make
make install

–with-pcre=/usr/src/pcre-8.21 指的是pcre-8.21 的源码路径。
–with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。

设置成功后 /usr/local/nginx 目录下如下

fastcgi.conf            koi-win             nginx.conf.default
fastcgi.conf.default    logs                scgi_params
fastcgi_params          mime.types          scgi_params.default
fastcgi_params.default  mime.types.default  uwsgi_params
html                    nginx               uwsgi_params.default
koi-utf                 nginx.conf          win-utf

6.启动
有限匡助系统的 80 端口没被其它程序占用,运营/usr/local/nginx/nginx
命令来运营 Nginx,

netstat -ano|grep 80

无结果后执行(ubuntu下必须用sudo运行,不然只万幸前台运转)

sudo /usr/local/nginx/nginx

开拓浏览器访问此机器的 IP,假如浏览器出现 Welcome to nginx! 则象征 Nginx
已经设置并运营成功。

澳门金沙国际 5


到那边nginx就设置到位了,固然只是处理静态html就毫无继续设置了

只要你必要处理php脚本的话,还亟需安装php-fpm。

上边设置排错

附:只怕遭受的谬误和局地救助音信

1.1编译pcre错误

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] Error 1
make[1]: Leaving directory `/usr/local/src/pcre-8.21'
make: *** [all] Error 2

澳门金沙国际 6

消除办法:安装g++,别忘了重新configure

apt-get install g++
apt-get install build-essential
make clean
./configure
make

1.2 make出错

make: *** No rule to make target `build', needed by `default'.  Stop.
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

依据第④步的设置格局或

apt-get install openssl
apt-get install libssl-dev

2.nginx编写翻译选项

make是用来编写翻译的,它从Makefile中读取指令,然后编写翻译。

make install是用来设置的,它也从Makefile中读取指令,安装到内定的岗位。

configure命令是用来检查和测试你的安装平台的对象特征的。它定义了系统的各类方面,包罗nginx的被允许行使的总是处理的措施,比如它会检测你是或不是有CC或GCC,并不是索要CC或GCC,它是个shell脚本,执行达成时,它会创设2个Makefile文件。nginx的
configure命令扶助以下参数:

  • --prefix=path   
    定义二个索引,存放服务器上的文件 ,也正是nginx的装置目录。暗中认可使用 /usr/local/nginx。
  • --sbin-path=path 设置nginx的可执行文件的门道,暗中同意为
     prefix/sbin/nginx.
  • --conf-path=path  设置在nginx.conf配置文件的不二法门。nginx允许使用分化的布署文件运营,通过命令行中的-c选项。暗中同意为prefix/conf/nginx.conf.
  • --pid-path=path  设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为``prefix/logs/nginx.pid.
  • --error-log-path=path 设置主错误,警告,和确诊文件的名号。安装达成后,能够随时变动的公文名
    ,在nginx.conf配置文件中 使用 的error_log指令。默许意况下,文件名
    prefix/logs/error.log.
  • --http-log-path=path 
    设置主请求的HTTP服务器的日志文件的称谓。安装到位后,能够每日变动的文件名
    ,在nginx.conf配置文件中 使用 的access_log指令。暗中同意情形下,文件名
    prefix/logs/access.log.
  • --user=name 
    设置nginx工作历程的用户。安装完结后,能够随时变动的称号在nginx.conf配置文件中
    使用的 user指令。暗中认可的用户名是nobody。
  • --group=name  设置nginx工作经过的用户组。安装实现后,能够每一日变动的称号在nginx.conf配置文件中
    使用的 user指令。私下认可的为非特权用户。
  • --with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
  • --with-poll_module --without-poll_module 启用或剥夺营造二个模块来允许服务器使用poll()方法。该模块将自动建立,倘若平台不帮忙的kqueue,epoll,rtsig或/dev/poll。
  • --without-http_gzip_module —
    不编写翻译压缩的HTTP服务器的响应模块。编写翻译并运维此模块供给zlib库。
  • --without-http_rewrite_module 
    不编写翻译重写模块。编写翻译并运维此模块须要PCRE库补助。
  • --without-http_proxy_module — 不编译http_proxy模块。
  • --with-http_ssl_module —
    使用https协议模块。暗中认可意况下,该模块没有被创设。建立并运营此模块的OpenSSL库是少不了的。
  • --with-pcre=path — 设置PCRE库的源码路径。 PCRE库的源码(版本4.4 –
    8.30)必要从PCRE网站下载并解压。其他的行事是Nginx的./
    configure和make来形成。正则表明式使用在location指令和
    ngx_http_rewrite_module 模块中。
  • --with-pcre-jit —编译PCRE包含“just-in-time
    compilation”(1.1.12中, pcre_jit指令)。
  • --with-zlib=path —设置的zlib库的源码路径。要下载从
    zlib(版本1.1.3 – 1.2.5)的并解压。其他的办事是Nginx的./
    configure和make达成。ngx_http_gzip_module模块须求使用zlib 。
  • --with-cc-opt=parameters —
    设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时索要选用:--with-cc-opt="-I /usr/local/include。.如必要需求充实 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
  • --with-ld-opt=parameters —设置附加的参数,将用以在链接时期。例如,当在FreeBSD下行使该系统的PCRE库,应钦点:--with-ld-opt="-L /usr/local/lib".

压倒一切实例(上面为了显得需求写在多行,执行时内容需求在同一行)

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3
/usr/local/nginx/sbin/nginx -V

/usr/local/nginx/sbin/nginx -V

澳门金沙国际 7

澳门金沙国际 8


6,上边正是怎么在那种状态时有爆发以往,怎么后续安装一些模块,比如ssl模块

6,上边正是怎么在那种意况时有爆发之后,怎么后续安装一些模块,比如ssl模块

7,进入源码包,重新执行 从前的模块,注意一定不要执行 make
install,不然就覆盖了

7,进入源码包,重新执行 从前的模块,瞩目早晚不要执行 make
install
,不然就覆盖了

cd nginx-1.11.4
./configure –prefix=/usr/local/nginx –with-http_stub_status_module
–with-http_ssl_module
make

cd nginx-1.11.4
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make

8,安装模块,编写翻译之后,先备份此前的nginx
,以备不时之需,然后替换编写翻译好的nginx

8,安装模块,编写翻译之后,先备份在此之前的nginx
,以备不时之需,然后替换编写翻译好的nginx

cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/bak/nginx
cp ./objs/nginx /usr/local/nginx/sbin/

cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/bak/nginx
cp ./objs/nginx /usr/local/nginx/sbin/

9,今后再查看Nginx已经设置的模块

9,将来再查看nginx已经安装的模块

澳门金沙国际 9

澳门金沙国际 10

成功,Over,假设是因此rpm包安装的,好像私下认可是包蕴那个模块的,如若通过源码安装,而且忘了设置一些模块的话,就只可以继续安装那几个模块了,即使您有更好的章程,希望批评指正。

事业有成,Over,假诺是经过rpm包安装的,好像暗中同意是含有那一个模块的,假如经过源码安装,而且忘了安装一些模块的话,就不得不延续安装这一个模块了,倘诺您有更好的法门,希望批评指正。

Ngxin做http强制跳转https后接口的POST请求变成GET

Linux  下 Nginx 安装配备 Let’s Encrypt 证书达成 HTTPS 

Linux下源码安装Nginx(Ubuntu和CentOS通用) 

Nginx落成端口转载
动用Nginx+Docker配置HTTPS负载均衡

CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配备 

Nginx
的事无巨细介绍
:请点这里
Nginx
的下载地址
:请点那里

Linux公社的RSS地址:

正文永久更新链接地址

澳门金沙国际 11

相关文章