码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx反向服务器搭建

时间:2019-08-31 23:19:51      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:yum   conf   nginx源码包   一个   error   端口   text   figure   stream   

Nginx环境搭建

下载解压Nginx源码包

可以通过已有的压缩包

这里也可以通过yum的在线下载

wget http://nginx.org/download/nginx-1.13.7.tar.gz

tar -zxf nginx-1.14.2.tar.gz -C [目标路径]

技术图片

安装nginx

进入解压后的源码包内

cd nginx-1.14.2/

技术图片

执行命令之前,要做一件事情,解决依赖,不然安装不了nginx

一键安装依赖包

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

技术图片

开始安装nginx

执行 ./configure

技术图片
以下表示成功技术图片

编译 make

技术图片

安装 make install

技术图片

设置配置文件

vim conf/nginx.conf

技术图片

启动命令

nginx启动命令在 /usr/local/nginx/sbin/ 目录下

可以拷贝到 /usr/bin/ 快捷启动

./nginx 启动

指定配置文件启动

nginx -c /usr/local/nginx/conf/nginx.conf

./nginx -s stop 关闭

./nginx -s reload 重启

技术图片

iptables需要开启80端口否则无法访问,iptables -I INPUT -p tcp --dport 80 -j ACCEPT

技术图片

简单配置端口转发

进入配置文件

vim conf/nginx.conf

技术图片

创建一个新的应用服务器来转发端口

server {
    # 监听8090端口
    listen  8090;
    location / {
        # 访问8090端口转发到80端口的应用服务器上
        proxy_pass  http://127.0.0.1:80;
    }
}

技术图片

重启nginx nginx -s reload

技术图片

通过配置负载均衡池配置端口转发

进入配置文件

vim conf/nginx.conf

# 配置负载均衡池
upstream demo_pool{
    server 127.0.0.1:80;
}
server {
        listen 1234; #拦截端口
        server_name  demo.com; #域名配置
        # access_log logs/bolg.log;
        # error_log logs/bolg.error;
        #将所有请求转发给dome_pool池的应用处理
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://demo_pool; #如果是ssl更改成https
    }
}

技术图片

访问 http://192.168.80.11:1234

技术图片

server_name的匹配

server {
    listen 80;
    server_name www;
    location / {
        default_type text/html;
        content_by_lua '
            ngx.say("<p>www</p>")
        ';
    }
}
server {
    listen  80;
    server_name www.r0cky.com;
    location / {
        default_type text/html;
        content_by_lua '
            ngx.say("<p>www.r0cky.com</p>")
        ';        
    }
}
server {
    listen 80;
    server_name www.r0cky.*;
    location / {
        default_type text/html;
        content_by_lua '
            ngx.say("<p>www.r0cky.*</p>")
        ';
 
    }
}
server {
    listen 80;
    server_name ~\w+.com;
    location / {
        default_type text/html;
        content_by_lua '
            ngx.say("<p>~\w+.com</p>")
        ';        
    }
}
server {
    listen 80;
    server_name ~.*r0cky.com;
    location / {
        default_type text/html;
        content_by_lua '
            ngx.say("<p>~.*r0cky.com</p>")
        ';
    }
}

不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。

hosts

192.168.80.11   www.r0cky.com
192.168.80.11   www.r0cky.org
192.168.80.11   blog.r0cky.com
192.168.80.11   r0cky.com

访问 www.r0cky.com

技术图片
技术图片

访问 www.r0cky.org

技术图片
技术图片

访问 blog.r0cky.com

技术图片
技术图片

匹配顺序

server_name与host匹配优先级如下:

  1. 完全匹配
  2. 通配符在前的,如.test.com
  3. 在后的,如www.test.*
  4. 正则匹配,如~^.www.test.com$

如果都不匹配

  1. 优先选择listen配置项后有default或default_server的
  2. 找到匹配listen端口的第一个server块

Nginx反向服务器搭建

标签:yum   conf   nginx源码包   一个   error   端口   text   figure   stream   

原文地址:https://www.cnblogs.com/r0ckysec/p/11440835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!