server { listen 80; server_name *.dev.laravel; if ($host ~ ^(.*)\.dev\.laravel$ ) { set $app $1; set $path /data/www/learn/laravel/$1/public; } root $path; keepalive_timeout 0; client_max_body_size 1000m; location / { index default.php index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; } location ~ \.php/?.*$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } error_log /var/nginx/dev.laravel.error.log; access_log off; }
- 浏览: 2032773 次
- 来自: 武汉
文章分类
- 全部博客 (415)
- UI设计 (19)
- PHP (26)
- PHP工具类 (23)
- 二次开发 (53)
- phpMVC (28)
- javascript (50)
- JS 组件 (20)
- MYSQL (37)
- 其他 (16)
- xml/flash/flex (6)
- 版本控制 (7)
- 开源 (4)
- bug解决 (5)
- Linux (15)
- NoSQL (14)
- 软件设计 (21)
- C/PHP内核 (5)
- 安全性 (8)
- 面试 (18)
- 设计模式 (4)
- 重构 (6)
- 开发配置 (11)
- SQL SERVER (12)
- 采集 (3)
- SEO (2)
- 维护 (15)
- UML (5)
- 硬件标准 (1)
- 架构 (8)
- JAVA (1)
最新评论
-
carry0987:
求大神分離下X3的模板...不然對於PHP7不友好啊...
分离自Discuz模板类和语法 -
青木得海角:
你好,里面的 Crypt/TripleDES.php 和 Cr ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
q59200182:
能不能给个完整的demo 新手上路不会 求带
AngularJs 指令directive之controller,link,compile
server { listen 80; server_name servername.com; root /data/www/zendapp/public; location / { index index.php; } # Deny access to sensitive files. location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ { deny all; } location ~ \.htaccess { deny all; } # Rewrite rule adapted from zendapp/public/.htaccess if (!-e $request_filename) { rewrite ^.*$ /index.php last; } #图片/js/css不显示解决 location ~* ^.+\.(js|ico|gif|jpg|jpeg|pdf|png|css)$ { access_log off; expires 7d; } # PHP scripts will be forwarded to fastcgi processess. # Remember that the `fastcgi_pass` directive must specify the same # port on which `spawn-fcgi` runs. location ~ \.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } location = /50x.html { root /var/www/default; } }
Nginx 不支持 Apache 的 .htaccess 文件,所以需要在 Nginx 配置文件中编写重写规则。Apache 的绝大部分 RewriteRule 命令都可以不做修改的放到 Nginx 中直接使用。你只要把 RewriteRule 改成 rewrite,[L] 改成 last 之类的就可以了,具体可以看一下 Nginx 的 Rewrite 文档。
Nginx部署ThinkPHP项目的办法网上通用解决方法的配置如下
server { listen 80; server_name *.dev.tp5; if ($host ~ ^(.*)\.dev\.tp5$ ) { set $app $1; set $path /data/www/$1; } root $path; location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给ThinkPHP处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ \.php/?.*$ { fastcgi_pass 127.0.0.1:9000;#php-fpm调用listen fastcgi_index index.php; #加载Nginx默认"服务器环境变量"配置 include fastcgi.conf; #设置PATH_INFO并改写SCRIPT_FILENAME,SCRIPT_NAME服务器环境变量 set $fastcgi_script_name2 $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") { set $fastcgi_script_name2 $1; set $path_info $2; } #项目命名空间设置 fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2; fastcgi_param SCRIPT_NAME $fastcgi_script_name2; } #网站单独的日志文件 error_log /var/log/nginx/dev.tp5.error.log; access_log /var/log/nginx/dev.tp5.access.log main; }nginx支持YII配置
server { listen 80; server_name *.dev.yii; index index.php; if ($host ~ ^(.*)\.dev\.yii$ ) { set $app $1; set $path /data/www/$1; set $webpath $path/htdocs; } root $webpath; if (!-e $request_filename) { rewrite ^.*$ /index.php last; } location ~ \.(htm|html|js|css|gif|jpg|png|swf|ico|woff|eot|ttf|svg)$ { root $webpath; } location / { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } error_log /var/nginx/dev.yii.error.log; access_log /var/nginx/dev.yii.access.log main; }
nginx多server
1.检查/etc/nginx/nginx.conf配置文件,确保文件中有:include /etc/nginx/servers/*.conf;
user www; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; debug_connection 127.0.0.1; debug_connection 192.168.1.0/24; } http { include /etc/nginx/mime.types; # ...... server { listen 80; server_name localhost; location / { root /data/www/; # 该项要修改为你准备存放相关网页的路径 index index.html index.htm home.php default.php index.php; } #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /usr/local/etc/nginx/fastcgi.conf; } } include /etc/nginx/servers/*.conf; }
2.关键步骤,在目录/etc/nginx/servers/下面新建文件site1.conf,site2.conf,文件名任意写,自己看明白就OK,后缀名需要与步骤1配置的一致,这里为.conf
在一个server块中配置多个站点.server_name指令的正则表达式应用
server { listen 80; server_name ~^(www\.)?(.+)$; index index.php index.html; root /data/wwwsite/$2; }站点的主目录应该类似于这样的结构:
/data/wwwsite/ssdr.info /data/wwwsite/linuxtone.org /data/wwwsite/baidu.com
本例中正则表达式捕获组创建了变量,普通的正则表达式捕获组可以创建$0、$1、…、$9这10个变量。$0表示原串,$1-$9表示第一到第九个匹配组的内容。
在一个server块中为一个站点配置多个二级域名 。
实际网站目录结构中我们通常会为站点的二级域名独立创建一个目录,同样我们可以使用正则的捕获来实现在一个server块中配置多个二级域名:
server { listen 80; server_name ~^(.+)?\.ssdr\.info$; index index.html; if ($host = ssdr.info){ rewrite ^ http://www.ssdr.info permanent; } if ($host ~ ^(.*)\.ssdr\.info$ ) set $domain $1; } root /data/wwwsite/ssdr.info/$domain/; }
站点的目录结构应该如下:
/data/wwwsite/ssdr.info/www/ /data/wwwsite/ssdr.info/nginx/
这样访问www.ssdr.info时root目录为/data/wwwsite/ssdr.info/www/,nginx.ssdr.info时为/data/wwwsite/ssdr.info/nginx/,以此类推。后面if语句的作用是将ssdr.info的方位重定向到www.ssdr.info,这样既解决了网站的主目录访问,又可以增加seo中对www.ssdr.info的域名权重。注意: 通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,“www.*.example.org
”和“w*.example.org
”都是非法的。
server { listen 80; server_name ~^(.+)?\.sklinux\.com$; set $www_root $1; root /data/www/sklinux.com/$www_root/; location ~ .*\.php?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/www/sklinux.com/$fastcgi_script_name; include fastcgi_params; } }
location ~ .*\.(js|css|png|jpg|gif)$ { root /home/xiaxt_web/wordpress; #站点根目录 if (-f $request_filename) { expires 1d; break; } }如何解决nginx上传大文件的限制:打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加
client_max_body_size 30m;30m表示最大上传30M,需要多大设置多大。然后重启nginx
location ~* /(\.svn|CVS|Entries){ deny all; }nginx内置变量
$args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为空字符串 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html"。 $document_uri #同 $uri $document_root #当前请求的文档根目录或别名 $host #优先级:HTTP请求行的主机名>"HOST"请求头字段>符合请求的服务器名 $hostname #主机名 $https #如果开启了SSL安全模式,值为"on",否则为空字符串。 $binary_remote_addr #客户端地址的二进制形式,固定长度为4个字节 $body_bytes_sent #传输给客户端的字节数,响应头不计算在内;这个变量和Apache的mod_log_config模块中的"%B"参数保持兼容 $bytes_sent #传输给客户端的字节数 $connection #TCP连接的序列号 $connection_requests #TCP连接当前的请求数量 $content_length #"Content-Length" 请求头字段 $content_type #"Content-Type" 请求头字段 $cookie_name #cookie名称 $limit_rate #用于设置响应的速度限制 $msec #当前的Unix时间戳 $nginx_version #nginx版本 $pid #工作进程的PID $pipe #如果请求来自管道通信,值为"p",否则为"." $proxy_protocol_addr #获取代理访问服务器的客户端地址,如果是直接访问,该值为空字符串 $realpath_root #当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径 $remote_addr #客户端地址 $remote_port #客户端端口 $remote_user #用于HTTP基础认证服务的用户名 $request #代表客户端的请求地址 $request_body #客户端的请求主体:此变量可在location中使用,将请求主体通过proxy_pass,fastcgi_pass,uwsgi_pass和scgi_pass传递给下一级的代理服务器 $request_body_file #将客户端请求主体保存在临时文件中。文件处理结束后,此文件需删除。如果需要之一开启此功能,需要设置client_body_in_file_only。如果将次文件传递给后端的代理服务器,需要禁用request body,即设置proxy_pass_request_body off,fastcgi_pass_request_body off,uwsgi_pass_request_body off,or scgi_pass_request_body off $request_completion #如果请求成功,值为"OK",如果请求未完成或者请求不是一个范围请求的最后一部分,则为空 $request_filename #当前连接请求的文件路径,由root或alias指令与URI请求生成 $request_length #请求的长度 (包括请求的地址,http请求头和请求主体) $request_method #HTTP请求方法,通常为"GET"或"POST" $request_time #处理客户端请求使用的时间; 从读取客户端的第一个字节开始计时 $request_uri #这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写URI,不包含主机名,例如:"/cnphp/test.php?arg=freemouse" $scheme #请求使用的Web协议,"http" 或 "https" $server_addr #服务器端地址,需要注意的是:为了避免访问linux系统内核,应将ip地址提前设置在配置文件中 $server_name #服务器名 $server_port #服务器端口 $server_protocol #服务器的HTTP版本,通常为 "HTTP/1.0" 或 "HTTP/1.1" $status #HTTP响应代码 $time_iso8601 #服务器时间的ISO 8610格式 $time_local #服务器时间(LOG Format 格式) $cookie_NAME #客户端请求Header头中的cookie变量,前缀"$cookie_"加上cookie名称的变量,该变量的值即为cookie名称的值 $http_NAME #匹配任意请求头字段;变量名中的后半部分NAME可以替换成任意请求头字段,如在配置文件中需要获取http请求头:"Accept-Language",$http_accept_language即可 $http_cookie $http_post $http_referer $http_user_agent $http_x_forwarded_for $sent_http_NAME #可以设置任意http响应头字段;变量名中的后半部分NAME可以替换成任意响应头字段,如需要设置响应头Content-length,$sent_http_content_length即可 $sent_http_cache_control $sent_http_connection $sent_http_content_type $sent_http_keep_alive $sent_http_last_modified $sent_http_location $sent_http_transfer_encoding
发表评论
-
正式环境log日志配置
2011-11-08 14:57 2627log日志,通常是根系统或者某些软件有关的相关记录,方便用 ... -
http auth basic认证保护后台admin
2011-10-24 16:22 2311一个web站点,总会有一些资源需要保护,比如图片文件、某些页面 ... -
IIS 伪静态设置
2011-10-14 09:33 42791、将下载的 IIS Rewrite 组件解压,放到适当的目录 ... -
apache配置
2011-10-09 16:08 2198在windows系统下,下无法将 htaccess.tx ... -
Apache虚拟主机
2011-09-22 10:22 15521.httpd.conf中找到Include conf/ex ... -
XCache加速器
2011-06-16 10:02 2669XCache 是一个又快又稳定的 PHP opcode 缓存 ... -
使用XDebug和WinCacheGrind分析PHP性能
2011-06-08 10:05 2771WEB性能日志工具 1.MYSQL慢查询日志 2.Xd ... -
通过拷贝frm myd myi opt文件来实现mysql的备份和还原
2011-02-10 12:54 2952不知道大家有没有想过,我们向mysql数据库中写入了数据,这 ... -
使用Apache模块mod_deflate加快页面打开速度
2011-01-12 17:45 2342mod_deflate 模块提供了DEFLATE 输 ... -
搭建环境WAMP
2009-07-16 14:22 2883PHP的安装 下载php包装包zip将php解压缩到c盘,把 ...
相关推荐
在编译和安装Nginx之前,我们需要配置编译选项。打开配置脚本并添加必要的模块,例如`--with-http_ssl_module`以启用HTTPS支持: ```bash ./configure --prefix=/usr/local/nginx --with-http_ssl_module ``` 完成...
Nginx配置多个service 多个访问路径 找到conf/nginx.conf修改配置文件 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid ...
Nginx完整配置说明 Nginx是当前最流行的Web服务器软件之一,常用于搭建Web服务器、反向代理服务器、负载均衡器等。下面是Nginx的完整配置说明,涵盖基本配置、反向代理、FastCGI等方面的知识点。 一、基本配置 在...
前因 搭建一个网站传统的方法是使用一个web服务器去解析文件入口文件,如使用Nginx,Apache解析到对应的入口文件,但是随着技术的发展,...Nginx端口映射配置 server { listen 80; server_name rbac.dev-lu.com; #
在Nginx中,配置多域名主要通过`server`块来实现。每个`server`块代表一个独立的虚拟主机,可以绑定到不同的域名。以下是一个基本的多域名配置示例: ```nginx http { server { listen 80; server_name example....
nginx配置多个静态资源 本文将详细介绍nginx配置多个静态资源的知识点,从基本概念到配置实践,涵盖了nginx配置文件的各个组件和指令。 nginx配置文件结构 nginx配置文件主要由以下几个部分组成: * main块:...
python-nginx, 在 python 中,创建和修改 Nginx serverblock配置 python 用于在 python ( 包含评论) 中轻松创建和修改 Nginx serverblock配置的模块。安装pip install python-nginx示例创建 Nginx serverb
在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。Nginx是一个高性能的HTTP和反向代理服务器,以其稳定性、高并发处理能力而受到广泛使用。下面...
Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,nginx多域名配置是在配置文件中建立多个server配置,在每个server配置中用server_name来对域名信息进行过滤。 实现方法如下: 举个例子,下面是一...
全局块设置影响整个服务器,events块定义连接处理方式,http块包含多个server块,server块定义监听的端口和域名,location块则用于匹配URL并进行特定的配置。 2. **全局块** 全局块配置项包括运行Nginx的工作模式...
在nginx中配置多个SSL证书是为了支持不同的域名,每个域名可能需要自己的SSL证书。下面是如何配置多证书的步骤: 1. 将每个域名的SSL证书和对应的私钥文件放在同一目录下,例如 `/etc/nginx/certs`。 2. 在`nginx....
### Nginx反向代理服务器配置基础教程 #### 一、系统架构 在现代Web服务部署中,Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于负载均衡、反向代理以及静态资源服务等多个场景。本文将详细介绍如何...
Nginx的配置主要通过主配置文件`nginx.conf`进行,其中包含多个服务器块(server blocks)来处理不同域名或端口的请求。每个服务器块可配置监听端口、虚拟主机、重定向规则、日志设置等。 3. **模块化设计** ...
标题中提到的"Nginx HTTP Server 2nd"指向的是第二版的《Nginx HTTP服务器》这本书。从这个标题可以推断,这本书是关于Nginx这个高性能HTTP和反向代理服务器以及邮件代理服务器的深入指南。Nginx是一个开源的、高...
1. **编辑Nginx配置文件**: 首先需要编辑Nginx的配置文件,通常位于`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`。在配置文件中定义如何处理不同的请求类型,比如静态资源和动态资源。 2. **配置...
### Nginx 配置与 HTTPS 实现详解 #### 一、Nginx 简介及配置结构 Nginx 是一个高性能的 HTTP 和反向...此外,通过配置不同的 Server 块,可以灵活地管理多个网站或应用服务,极大地提高了 Nginx 的实用性和灵活性。