nginx部署方式,两种写法,本人认为第一种写法没有第二种写法优雅

第一种写法配置文件:

    server {
listen ;
server_name youban-dev.jqtest.mopon.cn;
root E:\youban_svn\2.1.\youban-php\mall;
index index.php index.html index.htm; access_log logs/youban-dev.jqtest.mopon.cn.access.log; #PC端
location /pc/ {
alias E:\youban_svn\2.1.\youban-php\mall\website\web; rewrite ^(/pc/)/$ $ permanent;
try_files $uri /website/web/index.php?$args;
}
location ~ ^/pc/(.+\.(js|json|html|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ {
access_log off;
expires 360d; rewrite ^/pc/(.+)$ /website/web/$ break;
rewrite ^/pc/(.+)/(.+)$ /website/web/$/$ break;
try_files $uri =;
} #wap手机端
location /wap/ {
alias E:\youban_svn\2.1.\youban-php\mall\mobile\web; rewrite ^(/wap/)/$ $ permanent;
try_files $uri /mobile/web/index.php?$args;
}
location ~ ^/wap/(.+\.(js|json|html|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ {
access_log off;
expires 360d; rewrite ^/wap/(.+)$ /mobile/web/$ break;
rewrite ^/wap/(.+)/(.+)$ /mobile/web/$/$ break;
try_files $uri =;
} #微信端
location /weixin/ { alias E:\youban_svn\2.1.\youban-php\mall\frontend\web; rewrite ^(/weixin/)/$ $ permanent;
try_files $uri /frontend/web/index.php?$args;
}
location ~ ^/weixin/(.+\.(js|json|html|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ { access_log off;
expires 360d; rewrite ^/weixin/(.+)$ /frontend/web/$ break;
rewrite ^/weixin/(.+)/(.+)$ /frontend/web/$/$ break;
try_files $uri =;
} #地图
location /map/ { alias E:\youban_svn\2.1.\youban-php\mall\maps\web; rewrite ^(/weixin/)/$ $ permanent;
try_files $uri /maps/web/index.php?$args;
}
location ~ ^/map/(.+\.(js|json|html|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ { access_log off;
expires 360d; rewrite ^/map/(.+)$ /maps/web/$ break;
rewrite ^/map/(.+)/(.+)$ /maps/web/$/$ break;
try_files $uri =;
} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:
#
location ~ \.php$ {
root E:\youban_svn\2.1.\youban-php\mall;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}

第二种写法配置

server {
listen ;
server_name youban-dev.jqtest.mopon.cn;
#微信站点
location /weixin/ {
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://youban-weixin/;
}
#wap站点
location /wap/ {
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://youban-wap/;
}
#pc站点
location /pc/ {
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://youban-pc/;
}
#地图站点
location /map/ {
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://youban-map/;
} }
#微信站点
upstream youban-weixin {
server 127.0.0.1:;
} server {
listen ;
root E:\youban_svn\2.1.\youban-php\mall\frontend\web;
index index.php index.html index.htm;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ \.php$ {
root E:\youban_svn\2.1.\youban-php\mall\frontend\web;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
#access_log /home/logs/youban_dev/2.0/weixin.youban-dev.com.log;
}
#wap站点
upstream youban-wap {
server 127.0.0.1:;
} server {
listen ; root E:\youban_svn\2.1.\youban-php\mall\mobile\web;
index index.php index.html index.htm;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ \.php$ {
root E:\youban_svn\2.1.\youban-php\mall\mobile\web;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
#access_log /home/logs/youban_dev/2.0/h5.youban-dev.com.log;
}
 
#pc站点
upstream youban-pc {
server 127.0.0.1:;
} server {
listen ; root E:\youban_svn\2.1.\youban-php\mall\website\web;
index index.php index.html index.htm;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ \.php$ {
root E:\youban_svn\2.1.\youban-php\mall\website\web;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
#access_log /home/logs/youban_dev/2.0/web.youban-dev.com.log;
}
 
#地图站点
upstream youban-map {
server 127.0.0.1:;
} server {
listen ; root E:\youban_svn\2.1.\youban-php\mall\maps\web;
index index.php index.html index.htm;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ \.php$ {
root E:\youban_svn\2.1.\youban-php\mall\maps\web;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
#access_log /home/logs/youban_dev/2.0/web.youban-dev.com.log;
}


OK,将配置文件引入nginx.conf配置文件,就能通过目录访问不同的应用了,如:
微信站点
http://www.xxx.com/weixin/
手机wap站点
http://www.xxx.com/wap/
PC站点
http://www.xxx.com/pc/
地图应用
http://www.xxx.com/map/

warning:无论哪种配置,过后都会影响到Url::to()这个方法,直接重写UrlManager中的createUrl的方法,如下:

<?php
/**
* User: szliugx@gmail.com
* Date: 2017/4/12
* Time: 14:06
*/ namespace maps\component; class UrlManager extends \yii\web\UrlManager
{
/**
* 重写URL,以自定义的栏目开始
* @param array|string $params
* @return string
*/
public function createUrl($params)
{ $url = parent::createUrl($params); // TODO: Change the autogenerated stub
return \Yii::$app->params["homeUrl"]["map"].ltrim($url, '\\/');;
}
}

配置文件中修改:


 
 

【备忘录】yii2高级模板多个应用启用同一个域名多个栏目的更多相关文章

  1. Yii2 高级模板不使用Apache配置目录,将前后台入口移到根目录

    刚刚入手Yii2高级模板不久,部署项目时,得部署2个应用,个人感觉很繁琐,就将前后台入口文件全部拿到项目根目录.但是一看,完了,出错了!找教程找不到,还是自己解决吧 为了以后好升级,不改变Yii2核心 ...

  2. Yii2高级模板vendor和application非同级目录部署

    上面是Yii2的高级模板,当我们有多个application的时候,这种高级模板可以可以提供很好的扩展性,多个application共用一份YII2框架,默认情况下,框架和application是在同 ...

  3. yii2高级模板使用一个域名管理前后台

    yii2的高级模板分为backend和frontend,最开始用yii的时候并没怎么在意,就使用了两个域名分别解析前后台.今天无意间看见 可以使用一个域名指向前后台. 1.修改 advanced/ba ...

  4. Yii2高级模板的安装

    1.通过composer 安装高级版 C:wampwwwyii>composer create-project --prefer-dist yiisoft/yii2-app-advanced a ...

  5. yii2高级模板安装

    通过 Composer 安装 如果还没有安装 Composer,在 Linux 和 Mac OS X 中可以运行如下命令: curl -sS https://getcomposer.org/insta ...

  6. 对于 yii2 高级模板 生成文件入口

    安装的 advanced 模板web下是没有index.php 方法: 在advanced 目录下有个init.bat 应用程序  双击即可如下 查看advanced 目录 (刷新)如下 已有:

  7. Yii2 高级模板添加更多Application

    单独的前端和后端有时是不够的. 如果需要额外的应用程序,例如博客blog: 1.将frontend复制到blog,环境/ dev / frontend到environments / dev / blo ...

  8. Yii2 高级模板 多域名管理问题

    现在在网站中有这种情况,比如有一个 http://frontend.com/tv 需要根据判断用户的 User Agent ,如果用户是手机浏览器的话,则跳转到 http://mobile.com/t ...

  9. yii2高级版账号密码问题

    yii2高级版默认后台没有密码,生成账号密码步骤: 1. CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` ...

随机推荐

  1. POJ 1568 极大极小搜索 + alpha-beta剪枝

    极小极大搜索 的个人理解(alpha-beta剪枝) 主要算法依据就是根据极大极小搜索实现的. 苦逼的是,查了两个晚上的错,原来最终是判断函数写错了..瞬间吐血! ps. 据说加一句 if sum & ...

  2. C++:后缀表达式

    1.基本概念 后缀表示法也叫逆波兰表示法(前缀就是波兰表示法),由于所有的操作符都在操作数的后面,所以被称为后缀表示法. 中缀表示法的操作符在操作数之间,也是最符合人的逻辑.前缀表示法的操作符在操作数 ...

  3. [WinForm]Dundas Chart控件学习(附源码)

    1.Dundas公司简介 加拿大的一家公司,专业做图表展现的,很牛,据说现在被Microsoft收购了.官网地址:http://www.dundas.com/ 2.Chart基本要素 3.最简单的柱状 ...

  4. [C#]ref,out关键字的作用

    ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点. 使用ref前必须对变量赋值,out不用 out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都 ...

  5. java的简单入门,tomcat服务器

    Tomcat是一款开源的处理动态非常牛逼的web服务器.是sun公司开发的,在丧尸危机之后被收购了. 安装Tomcat需要的支持安装包 JDK下载:http://www.oracle.com/tech ...

  6. Jqeury ajax 调用C#的后台程序

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="JQueryTest.aspx. ...

  7. 学会使用Fidder抓取app的http请求(转)

    fidder可以抓取http请求,抓取手机app上面的,自己pc的请求也可以截取,通过这样达到类似浏览器调试的效果,更容易找到问题. 使用原文链接:http://www.cnblogs.com/syf ...

  8. 看一遍就懂,详解java多线程——volatile

    多线程一直以来都是面试必考点,而volatile.synchronized也是必问点,这里我试图用容易理解的方式来解释一下volatile. 来看一下它的最大特点和作用: 一 使变量在多个线程间可见 ...

  9. git pull时出现vim窗口的解决办法

    最近常用到git来push代码到origin development分支上,也出现了几次vim窗口,防止忘记还是记录下来比较好: 首先按ESC键退出编辑状态,然后按shift+;键,再按wq!保存退出 ...

  10. linux centos 安装opencv

    系统:Centos 6.5 最后版本 OpenCV: 2.4.9 1.安装依赖包(很重要) yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gi ...