使用SSL配置Nginx反向代理的简单指南

发布者:上海IT外包来源:http://www.lanmon.net点击数:899

反向代理是一种服务器,它接收通过Web发出的请求,即http和https,然后将它们发送到后端服务器(或服务器)。后端服务器可以是单个或一组应用程序服务器,如Tomcat,wildfly或Jenkins,甚至是其他Web服务器,如Apache。
我们已经讨论过如何使用Nginx配置简单的http反向代理。在本教程中,我们将讨论如何使用SSL配置Nginx反向代理。因此,让我们从使用SSL配置Nginx反向代理的过程开始。
先决条件
1.后端服务器:出于本教程的目的,我们在端口8080上使用在localhost上运行的tomcat服务器。
注意: - 启动代理请求时,请确保已启动应用程序服务器。
2.SSL证书:我们还需要在服务器上配置SSL证书。我们可以使用let加密的加密证书,你可以使用这里提到的程序得到一个。但是对于本教程,我们将使用自签名证书,该证书可以通过从终端运行以下命令来创建。
$ openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/nginx/certs/cert.key -out /etc/nginx/certs/cert.crt
使用ssl配置nginx反向代理的下一步将是nginx安装。
安装Nginx
Ubuntu的
Nginx可用于默认的Ubuntu存储库。这么简单,用以下命令安装,
$ sudo apt-get update && sudo apt-get install nginx
现在启动该服务并启用它。
#systemctl start nginx
#systemctl enable nginx现在检查nginx安装,我们可以打开Web浏览器并输入系统IP作为url来获取默认的nginx页面,这确认了nginx工作正常。
使用SSL配置Nginx反向代理
现在我们拥有了使用ssl配置nginx反向代理所需的一切。我们现在需要在nginx中配置,我们将使用默认的nginx配置文件/etc/nginx/conf.d/default.conf。
假设这是我们第一次对配置进行任何更改,打开文件并删除或注释掉所有旧文件内容,然后将以下条目放入文件中。
Vi /etc/nginx/conf.d/default.conf
服务器{
听80;
返回301https://$ host $ request_uri;
}
服务器{
听443;
Server_name linuxtechlab.com;
Ssl_certificate /etc/nginx/ssl/cert.crt;
Ssl_certificate_key /etc/nginx/ssl/cert.key;
Ssl on;
Ssl_session_cache内置: 1000共享: SSL: 10m;
Ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
Ssl_prefer_server_ciphers on;
Access_log /var/log/nginx/access.log;
地点/{
Proxy_set_header Host $ host;
Proxy_set_header X-Real-IP $ remote_addr;
Proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
Proxy_set_header X-Forwarded-Proto $ scheme;
Proxy_passhttp://localhost: 8080;Proxy_read_timeout 90;
Proxy_redirecthttp://localhost: 8080https://linuxtechlab.com;
}
}
完成所有更改后,保存文件并退出。在我们重新启动nginx服务以实现更改之前,我们将逐节讨论我们的配置。
第1节
服务器{
听80;
返回301https://$ host $ request_uri;
}
在这里,我们告诉我们监听端口80的任何请求,然后将其重定向到https。
第2章
听443;
Server_name linuxtechlab.com;
Ssl_certificate /etc/nginx/ssl/cert.crt;
Ssl_certificate_key /etc/nginx/ssl/cert.key;
Ssl on;
Ssl_session_cache内置: 1000共享: SSL: 10m;
Ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
Ssl_prefer_server_ciphers on;
现在这些是我们使用的一些默认的nginx ssl选项,它告诉nginx web服务器哪个协议版本,SSL密码。
第3节
地点/{
Proxy_set_header Host $ host;
Proxy_set_header X-Real-IP $ remote_addr;
Proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
Proxy_set_header X-Forwarded-Proto $ scheme;
Proxy_passhttp://localhost: 8080;
Proxy_read_timeout 90;
Proxy_redirecthttp://localhost: 8080https://linuxtechlab.com;}
现在,本节描述了代理以及传入请求的来源。现在我们已经讨论了所有配置,我们将检查然后重新启动nginx服务。
要检查nginx,请运行以下命令
#nginx -t
一旦我们所有的配置文件都可以,我们将重新启动nginx服务。
#systemctl restart nginx
就是这样,我们的ssl nginx反向代理现在就准备好了。现在要测试设置,您只需打开Web浏览器并输入URL即可。我们现在应该重定向到apache tomcat页面。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部