当前位置: 首页 > 科技观察

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

时间:2023-03-13 01:54:45 科技观察

反向代理是一种服务器,它接收通过Web发出的请求,即http和https,并将它们发送到后端服务器(或服务器)。后端服务器可以是单个或一组应用服务器,如Tomcat、wildfly或Jenkins等,甚至是其他Web服务器,如Apache等。我们已经讨论了如何使用Nginx配置一个简单的http反向代理。在本教程中,我们将讨论如何使用SSL配置Nginx反向代理。因此,让我们从使用SSL配置Nginx反向代理的过程开始。先决条件1.后端服务器:出于本教程的目的,我们使用在本地主机上运行的tomcat服务器,端口为8080注意:-当您开始代理请求时,请确保应用程序服务器已启动。2.SSL证书:我们还需要在服务器上配置一个SSL证书。我们可以使用let'sencrypt证书,您可以使用这里提到的程序获得一个。但是对于本教程,我们将使用自签名证书,可以通过从终端运行以下命令来创建该证书,$opensslreq-x509-nodes-days365-newkeyrsa:2048-keyout/etc/nginx/certs/cert。key-out/etc/nginx/certs/cert.crt使用ssl配置nginx反向代理下一步将是nginx安装,安装NginxUbuntuNginx可用于默认的Ubuntu存储库。很简单,使用以下命令安装它,$sudoapt-getupdate&&sudoapt-getinstallnginx现在启动服务并启用它启动,#systemctlstartnginx#systemctlenablenginx现在检查nginx安装,我们可以打开网络浏览器并输入系统IP作为获取默认nginx网页的url,这确认nginx工作正常。使用SSL配置Nginx反向代理现在我们拥有了使用ssl配置nginx反向代理所需的一切。我们现在需要在nginx中进行配置,我们将使用默认的nginx配置文件,即/etc/nginx/conf.d/default.conf。假设这是我们第一次对配置进行任何更改,打开文件并删除或注释掉所有旧文件内容,并将以下条目放入文件中。vi/etc/nginx/conf.d/default.confserver{listen80;return301https://$host$request_uri;}server{listen443;server_namelinuxtechlab.com;ssl_certificate/etc/nginx/ssl/cert.crt;ssl_certificate_key/etc/nginx/ssl/cert.key;sslon;ssl_session_cachebuiltin:1000shared:SSL:10m;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_ciphersHIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;ssl_prefer_server_cipherson;access_log/var/log/nginx/access.log;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$asschemehttp://proxy_pass:8080;proxy_read_timeout90;proxy_redirecthttp://localhost:8080https://linuxtechlab.com;}}完成所有更改后,保存文件并退出。在我们重启nginx服务以实现更改之前,我们将逐节完成我们所做的配置。Section1server{listen80;return301https://$host$request_uri;}在这里我们告诉我们要监听任何对端口80的请求,然后将其重定向到https。第2节listen443;server_namelinuxtechlab.com;ssl_certificate/etc/nginx/ssl/cert.crt;ssl_certificate_key/etc/nginx/ssl/cert.key;sslon;ssl_session_cachebuiltin:1000shared:SSL:10m;ssl_protocolsTLSv1TLSv1.1TLSv1.2;ssl_ciphers!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;ssl_prefer_server_cipherson;现在这些是我们正在使用的一些默认nginxssl选项,它们告诉nginxweb服务器支持哪个协议版本,SSL密码。第三节location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;proxy_passhttp://localhost:8080;proxy_read_timeout90;proxy_redirecthttp://8080https://linuxtechlab.com;}现在,本节描述代理和传入请求的来源。既然我们已经讨论了所有配置,我们将检查并重新启动nginx服务。要检查nginx,请运行以下命令#nginx-t一旦我们所有的配置文件都正确,我们将重新启动nginx服务#systemctlrestartnginx就是这样,我们的sslnginx反向代理现在已准备就绪。现在要测试设置,您只需打开Web浏览器并输入URL。我们现在应该重定向到apachetomcat网页。我们关于如何使用ssl配置nginx反向代理的教程到此结束,请使用下面的评论框发送有关本教程的任何问题或疑问。