最近项目因为网络原因需要有一台服务器作为中转机,跳转到互联网上,所以需要配置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