• 一台虚拟机配置nginx反向代理+3个apache虚拟主机


    三个虚拟主机通过一张网卡添加三个IP来实现

    一、安装nginx

    1.解决依赖

    [root@xuegod1 ~]# yum groupinstall "Development Tools" "Development Libraries" -y

    [root@xuegod1 ~]# yum install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* pcre-devel -y

    Zlib:Nginx提供gzip模块,需要zlib的支持

    Openssl:Nginx提供SSL的功能

    [root@xuegod1 ~]# tar xf pcre-8.37.tar.bz2 -C /usr/local/src/  //解压此安装包即可,不需要安装,Nginx需要指定pcre的源码不是安装后的路径,此包的功能是支持地址重写rewrite功能 pcre的依赖可以yum安装pcre和pcre-devel解决!

    2.解压编译安装

    [root@xuegod1 nginx-1.8.0]# tar xvf nginx-1.8.0.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.8.0

    [root@xuegod1 nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.37/

    [root@xuegod1 ~]# make -j 4 ; make install ; cd

    [root@xuegod1 ~]# useradd -M -u 8001 -s /sbin/nologin nginx  //用于运行Nginx的用户

    3.配置Nginx支持php文件

    [root@xuegod1 ~]# vim /usr/local/nginx/conf/nginx.conf  //Nginx主配置文件

    #user  nobody;

    user nginx nginx;    //添加此行

    并在所支持的主页面格式中添加php格式的主页,类似如下:

    location / {

    root html;

    index index.php index.html index.htm;

    }

    #location ~ \.php$ {

    # root html;

    # fastcgi_pass 127.0.0.1:9000;

    # fastcgi_index index.php;

    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

    # include fastcgi_params;

    #} #找到上面这段内容,将这段内容复制,去掉#且修改为如下

    location ~ \.php$ {

    root html;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name; #将scripts修改为nginx的html,即Nginx页面目录,因为要处理的php文件也在这个目录下

    include fastcgi_params;

    }

    4.启动Nginx

    [root@xuegod1 ~]# /usr/local/nginx/sbin/nginx

    [root@xuegod1 ~]# netstat -tlnp|grep nginx

    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      11786/nginx

    使用浏览器测试 http://192.168.10.31

    二、安装apache和php

    [root@xuegod44 conf]# yum install php httpd -y

    1.配置网卡

    [root@xuegod44 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1

    [root@xuegod44 ~]# cd /etc/sysconfig/network-scripts/
    [root@xuegod44 network-scripts]#ifcfg-eth0:1

    DEVICE=eth0:1
    TYPE=Ethernet
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=none
    IPADDR=192.168.10.51
    NETMASK=255.255.255.0

    [root@xuegod44 network-scripts]# cp ifcfg-eth0:1 ifcfg-eth0:2

    [root@xuegod44 network-scripts]# cp ifcfg-eth0:1 ifcfg-eth0:3

    [root@xuegod44 network-scripts]# vim ifcfg-eth0:2

    DEVICE=eth0:2
    TYPE=Ethernet
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=none
    IPADDR=192.168.10.52
    NETMASK=255.255.255.0

    [root@xuegod44 network-scripts]# vim ifcfg-eth0:3

    DEVICE=eth0:3
    TYPE=Ethernet
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=none
    IPADDR=192.168.10.53
    NETMASK=255.255.255.0

    [root@xuegod44 network-scripts]# service network restart

    [root@xuegod44 network-scripts]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0C:29:BA:FD:EF
    inet addr:192.168.10.44 Bcast:192.168.10.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:feba:fdef/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:59171 errors:0 dropped:0 overruns:0 frame:0
    TX packets:36411 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:68548149 (65.3 MiB) TX bytes:3833239 (3.6 MiB)

    eth0:1 Link encap:Ethernet HWaddr 00:0C:29:BA:FD:EF
    inet addr:192.168.10.51 Bcast:192.168.10.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    eth0:2 Link encap:Ethernet HWaddr 00:0C:29:BA:FD:EF
    inet addr:192.168.10.52 Bcast:192.168.10.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    eth0:3 Link encap:Ethernet HWaddr 00:0C:29:BA:FD:EF
    inet addr:192.168.10.53 Bcast:192.168.10.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

     2.配置apache

    [root@xuegod44 ~]# cd /var/www/html/
    [root@xuegod44 html]# mkdir a
    [root@xuegod44 html]# mkdir b
    [root@xuegod44 html]# mkdir c
    [root@xuegod44 html]# echo "192.168.10.51" > a/index.html
    [root@xuegod44 html]# echo "192.168.10.52" > b/index.html
    [root@xuegod44 html]# echo "192.168.10.53" > c/index.html

    [root@xuegod44 ~]# vim /etc/httpd/conf/httpd.conf

     Listen 81

    <VirtualHost 192.168.10.51:81>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/a
    ServerName xuegod44
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    <VirtualHost 192.168.10.52:81>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/b
    ServerName xuegod44
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    <VirtualHost 192.168.10.53:81>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/c
    ServerName xuegod44
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>

    三、配置nginx

    [root@xuegod44 ~]# vim /usr/local/nginx/conf/nginx.conf

    第二行添加

    user nginx nginx;

    server {
    listen 80;
    server_name localhost;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {          #添加
    root html;
    index index.html index.htm;
    if ($request_uri ~* \.html$) {
    proxy_pass http://htmlservers;
    }
    if ($request_uri ~* \.php$) {
    proxy_pass http://phpservers;
    }
    proxy_pass http://pciservers;

    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    # proxy_pass http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    # root html;
    # fastcgi_pass 127.0.0.1:9000;
    # fastcgi_index index.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    # include fastcgi_params;
    #}
    #location ~ \.php$ {
    # # proxy_pass http://127.0.0.1;
    # #}
    #
    # # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # #
    location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    upstream htmlservers {               #server模块外添加
        server 192.168.10.51:81;
        server 192.168.10.52:81;
        server 192.168.10.53:81;
    }
    upstream phpservers {
       server 192.168.10.51:81;
       server 192.168.10.52:81;
       server 192.168.10.53:81;
     }
    upstream pciservers {
        server 192.168.10.51:81;
       server 192.168.10.52:81;
       server 192.168.10.53:81;
      }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    # deny all;
    #}

     4.测试

    使用浏览器访问http://192.168.10.44

    刷新一次

    再刷新一次

    备注:apache这里不能用80端口,否则会与nginx冲突,因为nginx先占用了80端口。如果apache用80端口会报如下错误

  • 相关阅读:
    【剑指Offer】面试招聘题目2:重建二叉树
    简单的安装部署django程序
    Plinga接入
    游戏设计的一些观点
    开方实现
    Mongodb笔记
    动态编程
    数学基础的算法分析
    简单的统计代码程序
    远程在手机上调试android程序
  • 原文地址:https://www.cnblogs.com/hailun1987/p/7340173.html
Copyright © 2020-2023  润新知