Nginx 的https配置


准备两个东西可以从阿里云啊下载,推荐去阿里云,因为其他的没试过。

1.证书文件****.pem

2.证书私钥文件****.key
3.         安装linux最基础环境(jdk,tomcat,mysql)
4.         安装nginx 配置
一、安装准备
     首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
                         yum install gcc-c++;
                        yum install pcre pcre-devel;
                        yum install zlib zlib-devel;
                        yum -y install openssl openssl--devel; 
二、安装Nginx 

    安装之前,最好检查一下是否已经安装有nginx

                      Find -name nginx   

    如果系统已经安装了nginx,那么就先卸载

                        yum remove nginx  
 
    首先进入/usr/local目录
                        cd /usr/local
 
    从官网下载最新版的nginx
                        wget http://nginx.org/download/nginx-1.7.4.tar.gz
 
    解压nginx压缩包
                        tar -zxvf nginx-1.7.4.tar.gz
 
    会产生一个nginx-1.7.4 目录,这时进入nginx-1.7.4目录
                        cd nginx-1.7.4
 
安装一些ssl模块用来支持https
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_realip_module
 
    make
                    make install
 
    如果没有报错,顺利完成后,最好看一下nginx的安装目录
                        whereis nginx
 
    把proxy.conf传入 /usr/local/nginx/conf
 
在/usr/local/nginx 下创建cert文件夹,将安全证书.key和.pem传入进来
在/usr/local/nginx  下创建html文件夹,用于放入项目的静态资源
进入/usr/local/nginx/conf 下配置nginx.conf 配置文件如下
 
 


user  root;
worker_processes  8;


events {
    worker_connections  10240;
}




http {
    include       mime.types;
    default_type  application/octet-stream;
#此为proxy.conf文件的路径
include /usr/local/nginx/conf/proxy.conf;


    sendfile        on;


    keepalive_timeout  65;


#配置tomcat访问地址
upstream  backend{      
        #ip_hash;
        server 127.0.0.1:8080;
    } 

server {
listen 80;
#写入域名地址
server_name xxx.xxx.xxx;
#配置https://前缀
rewrite ^(.*)$ https://${server_name}$1 permanent;
}



server {


listen 443;
#写入域名地址
server_name xxx.xxx.xxx;


ssl on;


root html;


index index.html index.htm;
#写入证书文件地址以.pem结尾的路径
ssl_certificate /usr/local/nginx/cert/xxx.pem;
#写入证书秘钥文件地址以.key结尾的路径
ssl_certificate_key /usr/local/nginx/cert/xxx.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  welcome.jsp index.html index.htm;

#设置主机头和客户端真实地址,以便服务器获取客户端真实IP


proxy_set_header Host $host;


proxy_set_header X-Real-IP $remote_addr;


proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://backend;   

}

        location ~ .*.jsp$ {
index welcome.jsp;
proxy_pass http://localhost:8080;
        }

error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            #expires      30d;
            #这目录是我web服务器的项目位置,这里的目录需要最好和web服务器的静态资源的目录一样,当请求web服务器的css文件的时候,nginx会获取url地址,然后根据url地址去                
            #访问url对应的本地目录资源/这里就是nginx访问的静态资源地址
            root html;
            if (-f $request_filename) {
               expires 1d;
               break;
            }
        }

location ~ .*\.(js|css)?$
        {
#expires      1h;
root html;
if (-f $request_filename) {
expires 1d;
break;
}
        }
}






}


 
 
三 注意事项和启动关闭nginx
安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了。
 
    开启nginx:/usr/local/nginx/sbin/nginx
 
查看80端口程序:netstat -tulnp | grep ':80 '
查看433端口程序:netstat -tulnp | grep ':433'
                若安装成功,则80和443端口都会启动起来
pkill -9 nginx          :强制停止Nginx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章