加载中…
个人资料
LEDLampShop
LEDLampShop
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,122
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Nginx Magento多域名Nginx配置图解教程

(2014-02-19 13:04:23)
标签:

magento

nginx

multiple

domains

分类: Magento
   Magento作为网上商城行业的老大,功能最全面,配置也最为复杂。Nginx 作为网站服务器的后起之秀,以其速度快,高并发性能,越来越被广大网站服务商所采用。Magento 支持一次安装,可以配置多个域名(多个IP),这样可以为我们节省大量的网站服务器空间和配置时间。网上已经有很多Apache服务器关于Magento一次安装后配置多个IP或域名的教程,但是关于用Nginx服务器来配置Magento多个域名的详细教程,却非常少。要不就是抄来抄去那些没办法成功配置的一些代码。

  最近几天在研究怎样Magento在Nginx服务器下的一次安装配置多个域名,经过几天的摸索,终于配置成功了。

  希望本教程对大家有所帮助。

  本教程的配置环境是 Linux (Centos 6.5) + Nginx + PHP-fpm +MySQL

  目前我已经在 192.168.1.10 这个IP绑定了域名 lampk.com ,如下图,注意看浏览器地址栏里的ip地址
  Nginx <wbr>Magento多域名Nginx配置图解教程



  =============================================================
  首先我们在Linux下配置几个 IP地址,命令如下
  cd /etc/sysconfig/network-scripts #用cd命令转多网络脚本配置文件目录
  cp ifcfg-eth0 ifcfg-eth0:2 #用cp命令复制当前已有的网络接口
  vi ifcfg-eth0:2 #用vi命令修改刚才新建的网络接口,内容如下图的4行就可以了
  Nginx <wbr>Magento多域名Nginx配置图解教程


DEVICE=eth0:2 #这个一定要改成跟刚才用cp 命令新建的网络接口文件一样的编号
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.12 #这个IP地址随便,只用是你的路由器分配范围内的IP地址,
    我的是      192.168.1.1-192.168.1.254,例如,你可以写成192.168.1.11,或192.168.1.12等
NETMASK=255.255.255.0
然后用 :wq 命令保存
配置好后用命令 service network restart 重启网络,新的ip就生效了,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

可以用ifconfig命令查看配置的ip,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

以上是如何配置一个网卡多个IP的教程。
===========================================================

下面我们来配置Magento,登录Magento后台,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

进入到后台后,我们看到如下界面
Nginx <wbr>Magento多域名Nginx配置图解教程

点击第三个菜单Catalog 下的Manage Categories
Nginx <wbr>Magento多域名Nginx配置图解教程



点击 左上角黄色按钮 Add Root Category,在右边 Name 填写 Wholesale为新的Root Category,Is Active 在下拉按钮选择 Yes.
然后点击 System -> Manage Stores,进入到商店的管理界面,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

点击 第一个黄色按钮 Create Website,
Nginx <wbr>Magento多域名Nginx配置图解教程



进入添加网站界面,
Nginx <wbr>Magento多域名Nginx配置图解教程

在Name一栏填入 wholesale
在Code一栏填入 wholesale
然后点击 Save Website 黄色按钮 保存新建的网站

接下来我们创建Store,点击中间的黄色按钮,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

进入 New Store 界面
Nginx <wbr>Magento多域名Nginx配置图解教程

在 Website 右边的下拉菜单,我们选择 Wholesale
在 Name 右边的空白栏 我们填入 wholesale
在 Root Category右边的下拉菜单,我们选择 Wholesale,这是我们在之前Add Root Category时添加的
点击Save Store,保存并退出新建的 Store

接下来我们来创建 Store View,点击 第三个Create Store View黄色按钮,
Nginx <wbr>Magento多域名Nginx配置图解教程


进入 New Store View界面,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

在 Store 右边的下拉按钮,我们选择上一步新建的Wholesale这个Store
在 Name 的右边空白栏里,我们填入 English,因为我们可能还要建英语以外的其他语言的商店界面
在 Code 的右边空白栏里,我们填入 wholesale,这就是Nginx虚拟主机配置里要用到的代码 fastcgi_param  MAGE_RUN_CODE wholesale
在 Status 右边的下拉按钮,我们选择 Enabled,这时这个Store View可以上线。然后点击Save Store View按钮保存退出。

接下来点击 System -> Configuration 进入到网站的配置界面,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

找到左上角的 Current Configuration Scope,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

在 Current Configuration Scope下的下拉按钮选择 Wholesale下的 English
Nginx <wbr>Magento多域名Nginx配置图解教程

在左边 Configuration 下的 点击 Web菜单,进入如下界面
Nginx <wbr>Magento多域名Nginx配置图解教程

我们可以看到右边 Unsecure 和 Secure的 Base URL 都是 192.168.1.10,而且还都被勾选了,我们要把Use Website前面的勾勾去掉,然后才能编辑。去掉勾勾后,我们Base URL的 IP改成 192.168.1.12,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

注意,Base URL 里可以填写IP或则域名,例如我们把IP改成域名 http://www.ledlightshopping.comhttp://www.ledlampwholesale.comhttp://www.lampk.com 如下图
Nginx <wbr>Magento多域名Nginx配置图解教程


到此,后台增加新IP或域名的工作,我们就做完了。
====================================================================

接下来我们来配置 Nginx 的虚拟主机,让一个安装支持多个IP 或域名
用 cd 命令转到Nginx的虚拟主机配置目录,如下图
Nginx <wbr>Magento多域名Nginx配置图解教程

复制一个原先的配置,把内容改成下面的内容
vi wholesale.conf
Nginx <wbr>Magento多域名Nginx配置图解教程

以下是完整的Magento的Nginx配置代码
==========================================
 server {
        listen 80;
        ## SSL directives might go here
        server_name 192.168.1.12; ## Domain is here twice so server_name_in_redirect will favour the www
        root /var/www/magento;

        location / {
            index index.html index.php; ## Allow a static html file to be shown first
            try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
            expires 30d; ## Assume all files are cachable
        }

        ## These locations would be hidden by .htaccess normally
        location ^~ /app/                { deny all; }
        location ^~ /includes/           { deny all; }
        location ^~ /lib/                { deny all; }
        location ^~ /media/downloadable/ { deny all; }
        location ^~ /pkginfo/            { deny all; }
        location ^~ /report/config.xml   { deny all; }
        location ^~ /var/                { deny all; }

        location /var/export/ { ## Allow admins only to view export folder
            auth_basic           "Restricted"; ## Message shown in login window
            auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
            autoindex            on;
        }

        location  /. { ## Disable .htaccess and other hidden files
            return 404;
        }

        location @handler { ## Magento uses a common front handler
            rewrite / /index.php;
        }

        location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
            rewrite ^(.*.php)/ $1 last;
        }

        location ~ .php$ { ## Execute PHP scripts
            if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss

            expires        off; ## Do not cache dynamic content
            fastcgi_pass   127.0.0.1:9000;
            #fastcgi_param  HTTPS $fastcgi_https;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  MAGE_RUN_CODE wholesale; ## Store code is defined in administration > Configuration > Manage Stores
            fastcgi_param  MAGE_RUN_TYPE store;
            include        fastcgi_params; ## See /etc/nginx/fastcgi_params
        }
    }
====================================

有3个关键的配置要注意
1. server_name 改成你要绑定的IP或域名,我这里绑定了192.168.1.12;
2. root /var/www/magento; root 虚拟主机magento的安装目录,跟前面配置的一样,
3. fastcgi_param  MAGE_RUN_CODE wholesale;之前默认IP 192.1681.1.10的配置是fastcgi_param  MAGE_RUN_CODE default;
下面我还会粘贴之前配置的虚拟主机,它的IP绑定到了 192.1681.1.10
======================
 server {
        listen 80;
        ## SSL directives might go here
        server_name 192.168.1.10; ## Domain is here twice so server_name_in_redirect will favour the www
        root /var/www/magento;

        location / {
            index index.html index.php; ## Allow a static html file to be shown first
            try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
            expires 30d; ## Assume all files are cachable
        }

        ## These locations would be hidden by .htaccess normally
        location ^~ /app/                { deny all; }
        location ^~ /includes/           { deny all; }
        location ^~ /lib/                { deny all; }
        location ^~ /media/downloadable/ { deny all; }
        location ^~ /pkginfo/            { deny all; }
        location ^~ /report/config.xml   { deny all; }
        location ^~ /var/                { deny all; }

        location /var/export/ { ## Allow admins only to view export folder
            auth_basic           "Restricted"; ## Message shown in login window
            auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
            autoindex            on;
        }

        location  /. { ## Disable .htaccess and other hidden files
            return 404;
        }

        location @handler { ## Magento uses a common front handler
            rewrite / /index.php;
        }

        location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
            rewrite ^(.*.php)/ $1 last;
        }

        location ~ .php$ { ## Execute PHP scripts
            if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss

            expires        off; ## Do not cache dynamic content
            fastcgi_pass   127.0.0.1:9000;
            #fastcgi_param  HTTPS $fastcgi_https;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  MAGE_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores
            fastcgi_param  MAGE_RUN_TYPE store;
            include        fastcgi_params; ## See /etc/nginx/fastcgi_params
        }
    }
================================

最后重启 nginx 就可以(用命令  service nginx reload )


下面请查看 192.168.1.12 这个IP 配置好后的网页界面,这个IP 绑定了 LEDLampWholesale.com,注意Logo和浏览器栏里的IP地址
Nginx <wbr>Magento多域名Nginx配置图解教程


此外,我把192.168.1.11 这个IP 绑定到了LEDlightshopping.com 这个域名,请查看以下图,注意IP和LOGO
Nginx <wbr>Magento多域名Nginx配置图解教程





============
关于修改logo,大家是否看到上面这张图的logo已经由 lampk.com 变成了 ledlampwholesale.com,修改方法很简单,用 photoshop 制作一个背景为透明文字白色的logo 命名为logo1,然后储存为Web和设备所用格式保存成 logo1.gif ,然后上传到以下位置
/var/www/magento/skin/frontend/default/default/images
然后在 后台的 System -> Configuration -> Design 的 Header Logo Image Src 把images/logo.gif 改成images/logo1.gif 保存就可以了。如下图
Nginx <wbr>Magento多域名Nginx配置图解教程


0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有