微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Centos6.5,安装nginx,包含ssl模块,如果已经安装nginx则配置即可

使用https来访问,一般都需要用域名来访问(IP貌似也可以,我没有深入研究),既然是域名,我比较常用的是实用Nginx来做代理,一般来说安装起来应该很简单,但是还是遇到了一些有些非正常的、让人觉得很蛋疼很sb的问题,在这里一个记录。

安装Nginx(支持https,即开启SSL模块),需要首先安装pcre、zlib、openssl;安装openssl看我的另一篇文章安装openssl

遇到的问题:我的电脑上本来已经有了zlib、openssl了,但是安装Nginx的时候还是报error,说找不到zlib和openssl。

zlib我就直接重新安装了,但是openssl昨天刚刚重新安装了1.1.0最新版本的,为什么还是会报找不到的错误呢?然后想了一下,会不会就是因为充装了,所以路径和Nginx配置文件中openssl的路径不一样呢,所以我就使用yum重装openssl,yum认安装的是openssl1.0.1版本的,太旧了,所以安装好Nginx以后,我又重新把openssl安装了一遍,更新成最新的。下面说一下安装Nginx的步骤:

1、安装jdk,系统认的jdk版本不对,会造成后续很多问题,所以第一件事就是充装jdk,自己去网上找jdk,然后传到服务器上进行安装,并配置环境变量。

2、安装zlib,官网 http://zlib.net/ ,到上面下载个新版本,然后传到服务器上进行安装 (http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz?download)

[root@localhost]tar zxvf zlib-1.2.11.tar.gz
[root@localhost] cd zlib-1.2.11
[root@localhost] ./configure && make && make install

3、安装pcre,官网 https://sourceforge.net/projects/pcre/files/pcre/ ,到上面下载个新版本,然后传到服务器进行安装

[root@localhost] tar zxvf pcre-8.40.tar.gz
[root@localhost] cd pcre-8.40
[root@localhost] ./configure && make && make install

4、安装openssl,官网https://www.openssl.org/source/ ,看我另一篇文章安装openssl

5、安装Nginx,官网http://Nginx.org/download/ ,到上面下载个新版本,然后传到服务器进行安装。

[root@localhost]tar zxvf Nginx-1.8.0.tar.gz
[root@localhost] cd Nginx-1.8.0

然后一步一步执行,如果报错看的比较清楚:

首先执行 ./configure--prefix=/usr/local/Nginx --with-http_stub_status_module --with-http_ssl_module

这里如果没有安装上面的pcre zlib openssl 会报错,我遇到的比较蛋疼的是我已经安装过了openssl最新版本,但还是报错;所以我先试用yum指令重新装了一遍openssl

安装指令:yum -y install openssl-devel ,然后查看openssl的版本又变回了1.0.1e,这个版本太旧了,所以安装好Nginx以后再重新安装最新版本的openssl。

配置好以后,执行 make && make install

一般configure命令执行通过,make和install都会很顺利。

6、安装好以后,启动Nginx

cd /usr/local/Nginx/sbin/

./Nginx

出现错误提示
[root@localhost lib]# error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
原因 在64位机器上Nginx读取的pcre文件为/lib64/libpcre.so.1文件认安装pcre时libpcre.so文件安装在/usr/local/lib/目录下,所以输入/opt/Nginx/sbin/Nginx -V 找不到文件路径!!

1.首先确定安装了pcre.

2.切换路径: cd /usr/local/lib 执行 ln -s /usr/local/lib/libpcre.so.1 /lib64/

3.root权限下添加链接 /usr/local/lib/libpcre.so.1 到 /lib64/ : ln -s /usr/local/lib/libpcre.so.1 /lib64/

然后再启动就可以了。

7、~~万一我们服务器上已经安装过了Nginx怎么办呢?怎样才能做到不重新安装支持https呢?

解决方法:如果已经安装了Nginx,则只需要开启SSL模块即可。

首先查看Nginx现有的模块:

查看Nginx原有的模块

1
cd/usr/local/Nginx/sbin/Nginx
./Nginx -V

在configure arguments:后面显示的原有的configure参数如下:

configure arguments:--prefix=/usr/local/Nginx --with-http_stub_status_module

或者arguments:后面什么都没有
那么就应该

切换到源码包:

cd /usr/local/src/Nginx-1.9.9 你的源码放在那,就cd到那里。

我们的新配置信息就应该这样写:

./configure --prefix=/usr/local/Nginx --with-http_stub_status_module --with-http_ssl_modul

运行上面的命令即可,等配置完

配置完成后,运行命令

make

这里不要进行make install,否则就是覆盖安装

然后备份原有已安装好的Nginx

cp /usr/local/Nginx/sbin/Nginx /usr/local/Nginx/sbin/Nginx.bak

然后将刚刚编译好的Nginx覆盖掉原有的Nginx(这个时候Nginx要停止状态)

cp ./objs/Nginx /usr/local/Nginx/sbin/

然后启动Nginx,仍可以通过命令查看模块是否已经加入成功

/usr/local/Nginx/sbin/Nginx -V 

////////以下部分未做测试/////////

Nginx 配置Http和Https共存

1
2
3
4
5
6
7
8
9
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root / var /www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用

Nginx 配置SSL安全证书重启避免输入密码

可以用私钥来做这件事。生成一个解密的key文件,替代原来key文件

openssl rsa -inserver.key -outserver.key.unsecure

Nginx SSL性能调优

5
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on ;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

这部分参考别家的文章:http://www.cnblogs.com/piscesloveCc/p/6120875.html

////////以上部分未做测试/////////

8、Nginx相关配置,看我的另一篇文章配置nginx代理https

原文地址:https://www.jb51.cc/centos/378383.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。