Nginx配置作为中转服务器
原文链接:https://blog.csdn.net/anaitudou/article/details/103683266
1.1、首先使用命令安装必要的组件
yum install wget
yum install vim-enhanced
yum install make cmake gcc gcc-c++
1.2、下载nginx安装包
wget http://nginx.org/download/nginx-1.6.2.tar.gz
1.3、安装依赖,其中pcre(perl compatible regular expressions)是一个pert库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。pcre-devel是使用pcre开发的一个二次库,nginx也需要此库。zlib库提供了很多种压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。openssl是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的秘钥和证书封装管理功能及SSL协议,并提供丰富的应用程序提供测试或其它目的的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
1.4、进入到目录下,可以看到我们解压后的nginx-1.6.2文件夹了,然后我们进行configure配置,
由于我们需要代理的接口为https的接口所以需要添加ssl模块命令如下:cd nginx-1.6.2 && ./configure --prefix=/home/zqxy/nginx --with-http_stub_status_module --with-http_ssl_module。可以看出,这条命令是组合命令,先进入nginx-1.6.2目录然后在执行./configure命令。如下图所示。
./configure --prefix=/home/zqxy/nginx --with-http_stub_status_module --with-http_ssl_module
1.5编译完之后进行安装
make && make install
1.6、启动Nginx,启动完之后检查nginx是否已经正常启动,看到如下信息说明正常启动
/home/zqxy/nginx/sbin/nginx
ps -ef | grep nginx
如果要关闭nginx,我们可以使用如下命令:
/home/zqxy/nginx/sbin/nginx -s stop
通过浏览器访问nginx欢迎页,我们在地址栏输入:http://XXX.XXX.XX.XX/(80端口不用输也可以)或http://XXX.XXX.XX.XX:80/,如下图所示。
至此 我们安装好了NGINX服务,下面我们安装证书代理https接口
创建存放证书的目录
mkdir ssl
cd ssl
2.1生成证书
openssl genrsa -des3 -out cert.key 1024
2.2创建证书请求
openssl req -new -key cert.key -out cert.csr
cp cert.key cert.key.bak
openssl rsa -in cert.key.bak -out cert.key
2.3自签署证书
openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.pem
2.4将证书导出成浏览器支持的p12
openssl pkcs12 -export -clcerts -in cert.pem -inkey cert.key -out cert.p12
2.5p12文件中导出公钥和私钥,生成cert.key文件
openssl pkcs12 -in cert.p12 -nocerts -nodes -out cert.key
导出公钥
openssl rsa -in cert.key -out cert_pri.pem
导出私钥
openssl rsa -in cert.key -pubout -out cert_pub.pem
证书生成完毕,
下面我们对nginx参数进行配置用于代理接口服务
3.1、当启动过nginx之后,我们到/home/zqxy/nginx目录下,可以看到有conf、html、logs、sbin四个文件这四个文件是刚解压后就有的,是nginx重要的文件,还可以看到几个_temp结尾的文件,这些都是启动后生成的文件,我们暂且不用去管它们。我们使用cd conf命令进入conf目录,该目录下有个nginx.conf文件,这是nginx最重要的文件,我们修改nginx就是修改该文件,如下所示
cd /home/zqxy/nginx/conf
vim nginx.conf
其他配置文件不需要修改只需要修改https部分,修改前
修改后
server {
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate /home/zqxy/ssl/cert.pem;
ssl_certificate_key /home/zqxy/ssl/cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
location / {
add_header 'Access-Control-Allow-Origin' '*';
proxy_pass https://api.cycredit.com.cn;
#root html;
#index index.html index.htm;
}
}
重启nginx服务
如果配置完成够 访问nginx 报404 检查防火墙配置开启443 端口
# 开放443端口
firewall-cmd --permanent --add-port=443/tcp
nginx匹配多个路径转发到同一个地址写法
location ~ ^/(路径1|路径2|路径3|路径4|路径5) {
proxy_pass 跳转的地址;
proxy_set_header $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-tif-uid $http_x_tif_uid;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_ignore_client_abort on;
proxy_next_upstream timeout;
}