1.安装依赖包
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.下载并解压安装包
//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.g
3.安装nginx
//进入nginx目录
cd /usr/local/nginx
//执行命令
./configure
//执行make命令,编译
make
//执行make install命令,安装
make install
4.配置nginx.conf
# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
1.开启gzip 2.配置要代理的服务 3.配置跨域处理 4.配置https(nginx-1.10*以下版本可能没有TLSv1.1协议)(https认证文件我是在站长之家申请的一个免费的,也有花钱的套餐,www.sk-yye.cn.crt,www.sk-yye.cn.key)(需要开启443端口防火墙)
user root; worker_processes 1; events { worker_connections 1024; } http { # 开启gzip gzip on; # 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩 gzip_min_length 1k; # gzip 压缩级别 1-10 gzip_comp_level 5; # 进行压缩的文件类型。 gzip_types application/x-font-ttf application/x-font-woff image/svg+xml text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启 gzip_vary on; upstream clientapp { server 127.0.0.1:8081 weight=3; server 127.0.0.1:8082 weight=4; } upstream serverapp { server 127.0.0.1:8881 weight=3; server 127.0.0.1:8882 weight=4; } server { listen 80; server_name clientapp; rewrite ^(.*) https://www.sk-yye.cn$1 permanent; }
#配置https server{ listen 443; server_name www.sk-yye.cn;#填写绑定证书的域名 ssl on; ssl_certificate www.sk-yye.cn.crt; ssl_certificate_key www.sk-yye.cn.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#按照这个协议配置 TLSv1 SSLv2 SSLv3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { add_header 'Access-Control-Allow-Origin' '*'; proxy_pass http://clientapp; } #vue跨域 location /api { add_header 'Access-Control-Allow-Origin' '*'; proxy_pass http://127.0.0.1:8080/publiccms/api; } } server { listen 8888; server_name serverapp; location / { proxy_pass http://serverapp; } } }
|
5.Nginx配置SSL证书
没装证书会报nginx:[emerg]unknown directive ssl,这个错误提示
- 来到解压目录下后,按顺序执行一下命令:
./configure --with-http_ssl_module //重新添加这个ssl模块
- 执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。
- 在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/nginx/sbin/nginx
4. 最后我们来到Nginx安装目录下,来查看是否有安装ssl模块成功。执行./sbin/nginx -V即可看到如下:
--with-http_ssl_module
5. 最后如果出现如上图,则SSL模块添加到Nginx的编译好了,这次重新启动则OK了