Cento7+Nginx反向代理实现多域名跳转

本文介绍了如何在CentOS7系统中使用Nginx进行反向代理,实现多域名跳转。通过配置Nginx,可以将不同域名的请求转发到内部的不同服务器,详细步骤包括安装Nginx、备份配置文件、修改端口、创建新的配置文件以设置反向代理,并添加日志记录访问信息。在DNS设置完成后,通过域名访问即可看到效果。

Cento7+Nginx反向代理实现多域名跳转

近期比较忙,所以很少写文档了,最近有个项目组有多个环境需要做映射,所以就想到了通过Nginx反向代理实现多域名地址跳转,以致就总结了一下,其实说到代理我们大家都知道。最常见最常说的所谓的就是NAT,就是将内部多个地址请求通过代理转达到外部。这个就叫正向代理,那什么是反向代理呢-就是和正向代理相反;所以很好理解,Nginx反向代理功能很强大,可以通过一个nginx代理实现多个域名及不同的端口进行代理转发,所以在日常的运维中很有帮助。我们今天的演示是通过Nginx反向代理实现内部不同的多个域名转发。具体见下:

环境:

Hostname:A-

IP:

Role:Nginx service

Hostname:B-

IP:

Role:Nginx service

Hostname:D-

IP:

Role:Nginx反向代理

需求:通过配置Nginx反向代理访问不同的域名实现跳转。

我们内部两台提供测试的Nginx提供的web服务已经安装完成。

我们需要在默认的nginx默认的显示页面上进行编辑显示内容:

vim /usr/share/nginx/html/
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma,
Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to A-S Nginx</h1>
<p>HostName:A-S</p>
<p>IP:</p>
</body>
</html>

接下来我们就开始安装及配置Nginx反向代理了;

我们先安装nginx,因为是Centos7,所以我们需要安装nginx仓库。

Yum install /packages/centos/7/noarch/RPMS/nginx-release-centos-7-
yum install nginx

我们最好能备份一下文件

cp /etc/nginx/ /etc/nginx/

然后我们打开默认的文件

vim /etc/nginx/

就可以看见默认的的内容

user nginx;
worker_processes 1;
error_log /var/log/nginx/ warn;
pid /var/run/;
events {
worker_connections 1024;
}
http {
include /etc/nginx/;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/ main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx//*.conf;

们看见nginx默认配置下包括了一个包含多个配置文件的选项,所以我们一般可以不修改这个默认的配置文件;

而且默认的配置文件中,已经包含了nginx配置文件的加载目录,意思是,只要是在/etc/nginx//下的所有的.conf文件都会被加载。

另外我们需要注意的是这个配置文件的内容在http区域中。

我们查看默认的配置文件

我们查看默认的文件内容

vim 

我们看见这个配置文件已经占用了80端口,我们将80端口修改,不然会有冲突,再次更改为88。

接下来我们新建一个配置文件,来配置反向代理内容,当然我们也可以直接在默认的配置文件中进行修改,但是我们一般的做法是不在默认的配置上修改。

vim realy-

然后添加server地址信息

server {
listen 80;
server_name localhost;
location / {
root html;
index  ;
}
error_page 500 502 503 504 /;
location = / {
root html;
}
}
server
{
listen 80;
server_name ;
location / {
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_pass :80;
}
}
server
{
listen 80;
server_name ;
location / {
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_pass :80;
}
}

--------------------------------------------------------------------------------

我们最后添加一个log文件,记录访问的log

我们需要在/etc/nginx 目录下创建一个log目录

cd /etc/nginx
mkdir logs

这个文件夹得有你启动nginx用户的写权限

然后在新建的配置文件里面添加

server {
listen 80;
server_name localhost;
location / {
root html;
index  ;
}
error_page 500 502 503 504 /;
location = / {
root html;
}
}
server
{
listen 80;
server_name ;
location / {
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_pass :80;
}
access_log logs/_;
}
server
{
listen 80;
server_name ;
location / {
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_pass :80;
}
access_log logs/_;
}

然后重启nginx服务就可以了

systemctl restatrt nginx

接下来我们测试访问

访问前,我们需要将server_name的两个域名在DNS中指向Nginx IP,这样使用域名才可以访问

我们访问


最后我们在log目录查看log

cd /etc/nginx/logs

我们分别查看两个log文件内容

cat _

cat _

我们可以看见是哪个机器访问的IP地址都会被显示

ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录结构如上 2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; 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; } } (完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名 proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现来访域名的跳转) 如下: 3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:start nginx Cmd窗口会闪一下 进程里面会多了个 浏览器里面输入:http://127.0.0.1 将出现: Nginx的欢迎界面。 注: nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值