操作目录在root的home下,/home
/mt/server/nginx/sbin/nginx
这是x云默认nginx
路径
下载nginx1.8 stable
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
下载openssl
wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz
tar zxvf openssl-1.0.0d.tar.gz
nginx -V 查看目前nginx编译选项,然后在新版本nginx下 执行,注意添加--with-openssl=/home/nginx-1.8.0/openssl-1.0.0d
选项
./configure --user=www --group=www --prefix=/mt/server/nginx --with-http_stub_status_module --with-openssl=/home/nginx-1.8.0/openssl-1.0.0d --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-...
编译,不要不要不要makeinstall
make
之后会看在当前目录生成objs文件,执行
./objs/nginx -V
nginx version: nginx/1.8.0
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 1.0.0d 8 Feb 2011
TLS SNI support enabled
发现TLS SNI support enabled
这我们可以放心用了,这可以实现一个ip多个站点。
但是
nginx -v
这时候还是老版本的nginx,下面我们需要做的比较关键
我们需要先备份
mv /mt/server/nginx/sbin/nginx /mt/server/nginx/sbin/nginx.old
然后转移
cp ./objs/nginx /mt/server/nginx/sbin/nginx
测试下
/mt/server/nginx/sbin/nginx -t
ok,执行更新
make upgrade
然后的最后
nginx -V
nginx version: nginx/1.8.0
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 1.0.0d 8 Feb 2011...
到此就成功了升级了nginx
并且添加了TLS SNI support
。
最后的步骤就是接申请证书,配置nginx文件就好。
申请完证书,会有对应的web服务器的配置参考。这里简单贴下
server {
listen 443 ssl;
ssl on;
server_name www.maipingzheng.com;
root /mt/www/mycnart1.2.0.1/;
index index.php;
ssl_certificate /mt/server/nginx1.2.5/conf/ssl/1_www.maipingzheng.com_bundle.crt;
ssl_certificate_key /mt/server/nginx1.2.5/conf/ssl/2_www.maipingzheng.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:xxxxxxxxxxxxGH:+MEDIUM:+LOxxxxXP;
ssl_prefer_server_ciphers on;
}
解决http二级域名跳转https,解决http根域名跳转https
server {
listen 80;
server_name maipingzheng.com;
if ($host != 'www.maipingzheng.com') {
rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent;
}
}
全站跳转https
server {
listen 80;
server_name www.maipingzheng.com;
rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent;
}
ok,收工。
*注意:如果想完全实现全站https,你的全站链接都得是https的,否则绿锁会不显示。
至于如何平衡,就看具体需求了,一般都是注册登录支付购买。
或者采取js等其他措施实现。*
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。