最近项目因为网络原因需要有一台服务器作为中转机,跳转到互联网上,所以需要配置nginx作为代理使用。
1、首先使用命令安装必要的组件
yum install wget
yum install vim-enhanced
yum install make cmake gcc gcc-c++
2、下载nginx安装包
wget http://nginx.org/download/nginx-1.6.2.tar.gz
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
4、解压nginx-1.6.2.tar.gz
tar -zxvf nginx-1.6.2.tar.gz
5、进入到目录下,可以看到我们解压后的nginx-1.6.2文件夹了,然后我们进行configure配置,命令:cd nginx-1.6.2 && ./configure --prefix=/home/zqxy/nginx。可以看出,这条命令是组合命令,先进入nginx-1.6.2目录然后在执行./configure命令。如下图所示。
make && make install
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的接口 所以需要添加ssl模块
开始Nginx的SSL模块
1.1 Nginx如果未开启SSL模块,配置Https时提示错误
原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块,其实也很简单,往下看: 做个说明:我的nginx的安装目录是/usr/local/nginx这个目录,我的源码包在/usr/local/src/nginx-1.6.2目录
1 |
|
1.2 Nginx开启SSL模块
切换到源码包:
1 |
|
查看nginx原有的模块
1 |
|
在configure arguments:后面显示的原有的configure参数如下:
1 |
|
那么我们的新配置信息就应该这样写:
1 |
|
运行上面的命令即可,等配置完
配置完成后,运行命令
1 |
|
这里不要进行make install,否则就是覆盖安装
然后备份原有已安装好的nginx
1 |
|
然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
1 |
|
然后启动nginx,仍可以通过命令查看是否已经加入成功
1 |
|
创建配置证书目录
-
# mkdir ssl
-
# cd ssl
1.生成私钥
-
openssl genrsa -des3 -out cert.key 1024 #生成1024的证书私钥
-
Generating RSA private key, 1024 bit long modulus
-
............++++++
-
......................++++++
-
e is 65537 (0x10001)
-
Enter pass phrase for cert.key: #提示输入密码
-
Verifying - Enter pass phrase for cert.key: #确认密码
2.创建证书请求
-
# openssl req -new -key cert.key -out cert.csr
-
Enter pass phrase for cert.key: #输入密码
-
You are about to be asked to enter information that will be incorporated
-
into your certificate request.
-
What you are about to enter is what is called a Distinguished Name or a DN.
-
There are quite a few fields but you can leave some blank
-
For some fields there will be a default value,
-
If you enter '.', the field will be left blank.
-
-----
-
Country Name (2 letter code) [AU]:cn #国家
-
State or Province Name (full name) [Some-State]:shanghai #省份
-
Locality Name (eg, city) []:shanghai #地区名字
-
Organization Name (eg, company) [Internet Widgits Pty Ltd]:westos #公司名
-
Organizational Unit Name (eg, section) []:linux #部门
-
Common Name (e.g. server FQDN or YOUR name) []:server #CA主机名
-
Email Address []:root@server #邮箱
-
Please enter the following 'extra' attributes
-
to be sent with your certificate request
-
A challenge password []:123456 #证书请求密钥,CA读取证书的时候需要输入密码
-
An optional company name []:123456 #公司名称,CA读取证书的时候需要输入名称
# cp cert.key cert.key.bak
-
# openssl rsa -in cert.key.bak -out cert.key
-
Enter pass phrase for cert.key.bak: #输入密码
-
writing RSA key
3.自签署证书
·```
#openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.pem
-
# ll
-
total 16
-
-rw-r--r-- 1 root root 749 Oct 25 15:33 cert.csr
-
-rw-r--r-- 1 root root 891 Oct 25 16:13 cert.key
-
-rw-r--r-- 1 root root 963 Oct 25 16:12 cert.key.bak
-
-rw-r--r-- 1 root root 920 Oct 25 16:16 cert.pem
4.将证书导出成浏览器支持的p12
-
# openssl pkcs12 -export -clcerts -in cert.pem -inkey cert.key -out cert.p12
-
Enter Export Password:
-
Verifying - Enter Export Password:
-
[root@localhost ssl]# ls
-
cert.csr cert.key cert.key.bak cert.p12 cert.pem
5.p12文件中导出公钥和私钥
生成cert.key文件
openssl pkcs12 -in cert.p12 -nocerts -nodes -out cert.key
导出公钥
-
# openssl rsa -in cert.key -out cert_pri.pem
-
writing RSA key
导出私钥
# openssl rsa -in cert.key -pubout -out cert_pub.pem
下面我们对nginx参数进行配置用于代理接口服务
1、当启动过nginx之后,我们到/home/zqxy/nginx目录下,可以看到有conf、html、logs、sbin四个文件这四个文件是刚解压后就有的,是nginx重要的文件,还可以看到几个_temp结尾的文件,这些都是启动后生成的文件,我们暂且不用去管它们。我们使用cd conf命令进入conf目录,该目录下有个nginx.conf文件,这是nginx最重要的文件,我们修改nginx就是修改该文件,如下所示
切换到nginx配置文件
接下来配置conf文件
# cd /usr/local/nginx/conf
来源:CSDN
作者:anaitudou
链接:https://blog.csdn.net/anaitudou/article/details/103664238