您的位置:首页 > 运维架构 > 反向代理

nginx 反向代理的基本配置(以Ubuntu 16.04LTS为例)

2017-07-26 13:36 736 查看

nginx 反向代理的基本配置以及ssl证书的配置实现https 访问

nginx 反向代理的基本配置以及ssl证书的配置实现https 访问
安装nginx

修改apache 端口号防止出错

在nginx 目录下增加服务器配置
写入hostconf 配置文件

重启nginx

效果图

如何配置SSL 到nginx 并且反向代理呢
全站加密

1.安装nginx

pkill -9 apache2 # 关闭apache
sudo apt install nginx # 安装nginx,使用Ubuntu的包管理工具apt-get


2.修改apache 端口号,防止出错



sudo vim /etc/apache2/ports.conf # 讲端口修改81,防止和nginx 重复,导致重启失败
sudo service apache2 start # 启动apache 服务器,代理目标服务器


3.在nginx 目录下增加服务器配置

cd /etc/nginx/conf.d/ # 进入配置文件目录
vim host.conf  # 创建自定义配置文件


在conf.d目录下新安装的nginx不存在任何文件,新建host.conf文件。在nginx目录下的nginx.conf中导入了conf.d下所有的文件.如下图:



所以直接在conf.d下简历host配置文件

写入host.conf 配置文件

server
{
listen 80;
server_name live.triste.com;
index index.html index.htm index.php
root /var/www/html;
location / {
proxy_pass http://localhost:81; proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}

server
{
listen 80;
server_name info.triste.com;
index index.html index.htm index.php
root /var/www/html;
location / {
proxy_pass http://localhost:81; proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}


重启nginx

sudo service nginx reload


效果图

nginx 访问



反向代理到apache



反向代理到apache



如何配置SSL 到nginx 并且反向代理呢

假设在拥有了ssl证书的情况下:

直接上代码如下:

server {
listen 443;
server_name www.domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt;
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root   html; #站点目录
index  index.html index.htm;
}
}


上面代码就配置了
www.domain.com
, 现在你就可以通过
https://www.domain.com
来访问了.

配置反向代理:

server {
listen 443;
server_name blog.domain.com; #填写绑定证书的域名
ssl on;
ssl_certificate blog.domain.com_bundle.crt;
ssl_certificate_key blog.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:81; proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}


如上就配置了https 反向代理。

由于国内免费的ssl证书都是单域名证书因此每次配置时候都是需要重新制定证书。

全站加密

编辑nginx.conf 文件,在Ubuntu上的位置在于:
/etc/nginx/nginx.conf


http {
# 沈略部分
server {
rewrite ^(.*) https://$host$1 permanent;
}
}


上面代码即可进行从http 自动跳转到https 上,从而实现全站加密。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息