Nginx反向代理https服务

背景:

最近因工作需要,需在web前端做一个代理,来解决部分用户不能访问的需求;之前通过nginx反向代理已实现对web的代理,但后来发现还有站点为https的,所以又找了些资料,整理了一下,测试完成。

方法:

Nginx代理web站点ttxsgoto.com的相关部署和配置主要如下脚本实现:

#!/bin/bash

path_soft=$(pwd)

function base(){

yum -y install  make gcc gcc-c++ autoconf

}

function install(){

groupadd www

useradd -g www www

wget http://1.1.1.1/nginx/pcre-8.36.tar.gz

tar zxvf pcre-8.36.tar.gz

cd pcre-8.36

./configure

make && make install

wget http://1.1.1.1/nginx/nginx-1.6.2.tar.gz

tar zxvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure --user=www --group=www --prefix=/usr/local/web/nginx --with-http_stub_status_module  --with-http_ssl_module

make &&make install

}

function config(){

sed -i "s#\#gzip\ \ on;#\#gzip\ \ on;\n\n include\ \ vhosts/*.conf; #g" /usr/local/web/nginx/conf/nginx.conf

mkdir /usr/local/web/nginx/conf/vhosts

cat << EOF >> /usr/local/web/nginx/conf/vhosts/ttxsgoto.com.conf

server

{

listen             80;

server_name    ttxsgoto.com;

charset GB2312;

index index.html index.htm;

root    /date/wwwroot/ttxsgoto.com/;

location ~ ^/NginxStatus/ {

stub_status on;

access_log off;

}

location / {

proxy_redirect off ;

proxy_set_header Host \$host;

proxy_set_header X-Real-IP \$remote_addr;

proxy_set_header REMOTE-HOST \$remote_addr;

proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;

client_max_body_size 50m;

client_body_buffer_size 256k;

proxy_connect_timeout 30;

proxy_send_timeout 30;

proxy_read_timeout 60;

proxy_buffer_size 256k;

proxy_buffers 4 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_max_temp_file_size 128m;

proxy_pass    http://ttxsgoto.com;

}

}

server

{

listen             8081;

server_name    ttxsgoto.com:8081;

charset GB2312;

index index.html index.htm;

root    /date/wwwroot/ttxsgoto.com/;

location ~ ^/NginxStatus/ {

stub_status on;

access_log off;

}

location / {

proxy_redirect off ;

proxy_set_header Host \$host;

proxy_set_header X-Real-IP \$remote_addr;

proxy_set_header REMOTE-HOST \$remote_addr;

proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;

client_max_body_size 50m;

client_body_buffer_size 256k;

proxy_connect_timeout 30;

proxy_send_timeout 30;

proxy_read_timeout 60;

proxy_buffer_size 256k;

proxy_buffers 4 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_max_temp_file_size 128m;

proxy_pass    http://ttxsgoto.com:8081;

}

}

EOF

cat << EOF >> /etc/hosts

2.2.2.2 ttxsgoto.com

EOF

ln -s /usr/local/lib/libpcre.so.1 /lib64/

ulimit -SHn 51200

}

function start(){

/usr/local/web/nginx/sbin/nginx

}

function main(){

base

install

config

start

}

main

至此,nginx代理web的安装和配置都已完成,验证方法:在本地修改hosts文件:x.x.x.x  ttxsgoto.com,通过浏览访问页面成功。

代理https的实现:

1.在/usr/local/web/nginx/conf中新建目录ssl(创建相关ssl文件)

openssl genrsa -des3 -out ttxsgoto.com.key 1024

openssl req -new -key ttxsgoto.com.key -out ttxsgoto.com.csr

cp ttxsgoto.com.key ttxsgoto.com.key.orgi

openssl rsa -in ttxsgoto.com.key.orgi -out ttxsgoto.com.key

openssl x509 -req -days 365 -in ttxsgoto.com.csr -signkey ttxsgoto.com.key -out ttxsgoto.com.crt

2.在nginx.conf中增加相关配置(内容如下):

include  vhosts/ttxsgoto.com.conf;

server {

listen       80;

server_name  localhost;

location / {

root   html;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

server {

listen       443 ssl;

server_name  ttxsgoto.com;

ssl on;

ssl_certificate      ssl/ttxsgoto.com.crt;

ssl_certificate_key  ssl/ttxsgoto.com.key;

keepalive_timeout 60;

ssl_protocols  SSLv2 SSLv3 TLSv1;

ssl_prefer_server_ciphers   on;

access_log      /usr/local/web/nginx/logs/ssl-access.log;

error_log       /usr/local/web/nginx/logs/ssl-error.log;

location / {

proxy_pass  https://ttxsgoto.com;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

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 https;

proxy_redirect     off;

}

}

}

3.vhosts目录下ttxsgot.com.conf的配置文件内容:

server

{

listen             80;

server_name    ttxsgoto.com;

charset GB2312;

index index.html index.htm;

root    /date/wwwroot/ttxsgoto.com/;

location ~ ^/NginxStatus/ {

stub_status on;

access_log off;

}

location / {

proxy_redirect off ;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 50m;

client_body_buffer_size 256k;

proxy_connect_timeout 30;

proxy_send_timeout 30;

proxy_read_timeout 60;

proxy_buffer_size 256k;

proxy_buffers 4 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_max_temp_file_size 128m;

proxy_pass    http://ttxsgoto.com;

}

}

server

{

listen             8082;

server_name    ttxsgoto.com:8082;

charset GB2312;

index index.html index.htm;

root    /date/wwwroot/ttxsgoto.com/;

location ~ ^/NginxStatus/ {

stub_status on;

access_log off;

}

location / {

proxy_redirect off ;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 50m;

client_body_buffer_size 256k;

proxy_connect_timeout 30;

proxy_send_timeout 30;

proxy_read_timeout 60;

proxy_buffer_size 256k;

proxy_buffers 4 256k;

proxy_busy_buffers_size 256k;

proxy_temp_file_write_size 256k;

proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;

proxy_max_temp_file_size 128m;

proxy_pass    http://ttxsgoto:8082;

}

}

4.添加/etc/hosts的解析 
2.2.2.2 ttxsgoto.com

5.iptables防火墙开放相关的端口,像这里开放80,8082,443给外网访问

6.验证修改本地hosts文件,浏览器中验证访问成功,至此nginx反向代理https完成!

时间: 2024-10-16 09:23:31

Nginx反向代理https服务的相关文章

centos6.5搭建nginx反向代理Apache服务并实现动静分离

Nginx反向代理配置步骤: 一.规划网络拓扑 二.配置Apache服务器 三.配置nginx服务器 四.进行测试   一.规划网络拓扑 二.配置Apache服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 安装Apache服务 [[email protected] ~]# yum -y install httpd php 注:由于我们的Apache服务器要负责动态页面的处理,所以要安装PHP.   编辑A

Kubernetes用nginx反向代理另外服务

公司利用K8S搭建测试环境,以及存在多套测试换,目前的想法是每一套测试环境使用一个出口IP.方案:1.搭建ingress2.通过搭建一个反向代理 结合实际情况,我们使用搭建一个反向代理解决此问题. 我们环境中存在以下K8S服务vipapi-mall-com #基于.netcorebillapi-mall-com #基于PHPwww-mall-com #基于PHPmobile-mall-com #基于VUE vipapi-mall-com对外的域名就是vipapi.mall.combillapi-

Nginx 反向代理https

一.代理nginx开启80,443端口 ############################################################################ # cat /etc/nginx/conf.d/nginx_http.conf # 设置通过http域名访问的时候直接跳转https server { listen 80; server_name www.meteor-yu.com; rewrite ^/(.*) https://$server_name

nginx反向代理https站点

基本的代理配置就不说了 现在贴出配置并强调几点容易出错的问题. user              nginx; worker_processes  1; error_log  /var/log/nginx/error.log; pid        /var/run/nginx.pid; events { worker_connections  1024; } http { include       /etc/nginx/mime.types; default_type  applicati

Nginx反向代理https

相关的软件的安装在这里就不表述了. 生成证书: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt 编辑Nginx 域名配置文件: server { listen 443; server_name python.org *.python.org; ssl_certificate /etc/nginx/cert.crt; ssl_c

.net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡

1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器.集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行. 负载均衡,英文名称为Load

Nginx反向代理+负载均衡简单实现(https方式)

背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服务器上反向代理到B服务器上 这就涉及到nginx反向代理https请求的配置了~~~ ------------------------------------------------------------------------------------A服务器(192.168.1.8)上的操作流程

简单测试nginx反向代理和负载均衡功能的操作记录(2)-----https代理

背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服务器上反向代理到B服务器上 这就涉及到nginx反向代理https请求的配置了~~~ ------------------------------------------------------------------------------------A服务器(192.168.1.8)上的操作流程

Web服务之Nginx反向代理与负载均衡

一.代理 正向代理: 正向代理是一个位于客户端和目标服务器之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标服务器,然后代理向目标服务器转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理. 作用: 访问无法访问的服务器(翻墙,懂得) 加速访问目标服务器(链路加速) Cache缓存(访问加速) 实现客户端访问授权 隐藏访问者 反向代理: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转