如何在 centos 7cpanel 服务器上配置 nginx 反向代理

如何在 centos 7cpanel 服务器上配置 nginx 反向代理,第1张

注:本配置环境在CentOS下实现,其他方法请参考官方帮助文件
一、安装Nginx软件
Nginx官方网站:>1 配置nginx
1 启动nginx服务。
命令如下:
[root@VM_185_51 /]# service nginx restart

2 测试nginx服务是否正常运行。
如果最后显示:`indexhtml' saved ,说明nginx服务正常。
[root@VM_185_51 /]# wget >一直在用Nginx做反向代理,但是其SSL的配置只用过普通的服务端单向证书。在Google,百度狂搜一通之后,一无所获,依旧是那老三样,只有单向认证的示例。浏览器端双向认证的配置好像从没人写过。
因为要来回的设置所有直接使用域名 *** 作比如:
chaodiquancom 解析到 IP上面(IP要用你自己的,如果使用CDN另算)
这个是主要在最后的实际应用的测试的使用会用到
因为是自己实际应用,只好从OpenSSL的客户端证书开始学起,一点一点啃,大段大段的E文让我这半瓶子醋看的头晕眼晕。
的提示下终于把这个证书搞定,来秀一个。
这需要一下几个步骤:
1) 安装openssl用来做证书认证
2) 创建一个CA根证书
3) 创建一个自签名的服务器证书
4) 设置Nginx
5) 创建客户端证书
6) 安装客户端证书到浏览器
7) Profit
1)
这一步我是在ubuntu下直接apt-get装的openssl, 配置文件安装在/etc/ssl/opensslcnf
修改opensslcnf的以下几段
[ ca ]
default_ca = foo
Openssl将会寻找名称为foo的配置段
[ foo ]
dir = /etc/ssl/private
database = $dir/indextxt
serial = $dir/serial
private_key = $dir/cakey
certificate = $dir/cacrt
default_days = 3650
default_md = md5
new_certs_dir = $dir
policy = policy_match
policy_match 我保持默认值没有改
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = match
commonName = supplied
emailAddress = optional
默认签发有效期为10年,你可以自己设置一个合适的值
2)
创建一个新的CA根证书
下面的几个脚本我都放在/etc/ssl目录下
new_cash:
#!/bin/sh
# Generate the key genrsa意思是生成一个私钥
openssl genrsa -out private/cakey
# Generate a certificate request req表示生成证书,还能生成ca证书,-new表示产生一个新csr,需要输入一些信息,-key表示私钥,
openssl req -new -key private/cakey -out private/cacsr
#
Self signing key is bad this could work with a third party signed
key registeryfly has them on for $16 but I'm too cheap lazy to get
one on a lark
# I'm also not 100% sure if any old certificate will
work or if you have to buy a special one that you can sign with I could
investigate further but since this
# service will never see the light of an unencrypted Internet see the cheap and lazy remark
# So self sign our root key
x509是一个证书生成工具,显示证书内容,转换格式,给CSR签名等
-signkey用来处理CSR和给证书签名,就像CA。使用时得同时提供私钥,把输入文件变成自签名的证书,如果输入CSR文件,则生成自签名文件
-days证书有效时间
-in输入文件 -out输出文件
openssl x509 -req -days 3650 -in private/cacsr -signkey private/cakey -out private/cacrt
#
Setup the first serial number for our keys can be any 4 digit hex
string not sure if there are broader bounds but everything I've seen
uses 4 digits
echo FACE > private/serial
# Create the CA's key database
touch private/indextxt
# Create a Certificate Revocation list for removing 'user certificates'
gencrl在index文件中生成一个CRL相关的信息
-crldays是crl过期的时间
openssl ca -gencrl -out /etc/ssl/private/cacrl -crldays 7
执行 sh new_cash 生成新的CA证书
3)
生成服务器证书的脚本
new_serversh:
#
Create us a key Don't bother putting a password on it since you will
need it to start apache If you have a better work around I'd love to
hear it
openssl genrsa -out private/serverkey
# Take our key and create a Certificate Signing Request for it
openssl req -new -key private/serverkey -out private/servercsr
# Sign this bastard key with our bastard CA key
-cert CA本身的证书名
-keyfile CA本身的私钥
这句就是相当于CA用他的证书和私钥,根据服务器的证书,来给出一个CA认证的证书
openssl ca -in private/servercsr -cert private/cacrt -keyfile private/cakey -out private/servercrt
执行 sh new_serversh 生成新服务器的证书
4)
最要命的一步,尝试多次后终于搞明白。
配置 nginx 的ssl支持
我的配置如下:
# >将 NGINX 配置为 >

(1)定义环境变量

语法:env VAR|VAR=VALUE

这个配置项可以让用户直接设置 *** 作系统上的环境变量。例如:

1     env TESTPATH=/tmp/;

(2)嵌入其他配置文件

语法:include /path/file;

include配置项可以将其他配置文件嵌入到当前的nginxconf文件中,它的参数既可以是绝对路径,也可以是相对路径(相对于Nginx的配置目录,即nginxconf所在的目录),例如:

1     include mimetypes;

2     include vhost/conf;

可以看到,参数的值可以是一个明确的文件名,也可以是含有通配符的文件名,同时可以一次嵌入多个配置文件。

(3)pid文件的路径

语法:pid path/file;

默认:pid logs/nginxpid;

保存master进程ID的pid文件存放路径。默认与configure执行时的参数“--pid-path”所指定的路径是相同的,也可以随时修改,但应确保Nginx有权在相应的目标中创建pid文件,该文件直接影响Nginx是否可以运行。

(4)Nginx worker进程运行的用户及用户组

语法:user username [groupname];

默认:user nobody nobody;

user用于设置master进程启动后,fork出的worker进程运行在哪个用户和用户组下。当按照“user username;”设置时,用户组名与用户名相同。

若用户在configure命令执行时使用了参数--user=username和--group=groupname,此时nginxconf将使用参数中指定的用户和用户组。

(5)指定Nginx worker进程可以打开的最大句柄描述符个数

语法:worker_rlimit_nofile limit;

设置一个worker进程可以打开的最大文件句柄数。

(6)限制信号队列

语法:worker_rlimit_sigpending limit;

设置每个用户发往Nginx的信号队列的大小。也就是说,当某个用户的信号队列满了,这个用户再发送的信号量会被丢掉。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10262156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存