前言

使用nginx避免不了配置虚拟主机,刚开始,配置虚拟主机时放置到 nginx 配置文件夹下的 vhost 文件夹中,每次添加虚拟主机需要复制一份相关的配置文件到新的配置文件中。

但是,作为一个程序员,能有多懒,自然有多懒。所以我把 配置文件分成几个部分。用的时候直接引入,这样每个配置只有几行必须的配置。其他公共部分都是分成块放置到指定位置,这样简洁多了。

支持跨域的 nginx配置块 cross.conf

# 跨域设置
#  add_header 'Content-Type' "text/html;charset=utf-8";
# 我是用的是nginx自带变量,代表所有域名都可以跨域到这个服务中,不安全,这里需要按照自己的业务配置。
  add_header 'Access-Control-Allow-Origin' "$http_origin";
  add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With';
  add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,HEAD,PUT,DELETE';
  add_header 'Access-Control-Allow-Credentials' 'true';
  add_header 'Access-Control-Expose-Headers' 'Authorization';
# 我用的是俩小时过期,可以自定义 单位 秒
  add_header 'Access-Control-Max-Age' 7200;
#  add_header 'Access-Control-Allow-Headers' 'X-Data-Type,X-Auth-Token,X-token,*';

# 这里是浏览器检测支不支持跨域时用的请求方法,直接返回 204 不需要返回响应体,没有配置的时候,服务器会交给PHP处理。
  if ( $request_method = 'OPTIONS' ) {
    return 204;
  }
Bash

对应版本的 PHP 块 php.conf

我用到 多个PHP同时运行,所以配置多个 PHP块,根据自己需要自己修改即可

# 这个是开启 PHP_PATH 的
location ~ \.php.*?$ {
   fastcgi_buffer_size 128k;
   fastcgi_buffers 4 256k;
   fastcgi_busy_buffers_size 256k;

# 下面是我对应PHP版本 监听的端口号,
   fastcgi_pass   127.0.0.1:20073;
   fastcgi_index  index.php;
   fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   fastcgi_param  PATH_INFO  $fastcgi_path_info;
   fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
   include        fastcgi_params;
}
Bash
# 没有PHP_PATH的版本
location ~ \.php$ {
   fastcgi_buffer_size 128k;
   fastcgi_buffers 4 256k;
   fastcgi_busy_buffers_size 256k;

   fastcgi_pass   127.0.0.1:20073;
   fastcgi_index  index.php;
   include        fastcgi_params;
}
Bash

Laravel框架 配置块 laravel.conf

# 优雅的URL
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
Bash

phalcon框架 配置块 phalcon.conf

location / {
    #try_files $uri $uri/ /index.php?_url=$uri&$args;
	# 使用下面这个需要对 router服务配置下URL来源 默认使用上面的配置。
    try_files $uri $uri/ /index.php?$args;
 }
Bash

TP框架 tp.conf

location / {
    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}
Bash

https ssl.conf

listen 443;
    ssl_prefer_server_ciphers on;
# 配置自己的路径
    ssl_certificate      /web/ssl/host.cer;
# 配置自己的路径
    ssl_certificate_key  /web/ssl/host.key;
# 配置自己的路径
    ssl_dhparam /web/ssl/dhparam.pem;

    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  60m;

# 下面这行代表 多长时间内让浏览器自动将 http 转为 https 根据自己业务调整吧
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

    ssl_ciphers  HIGH:!aNULL:!MD5;
Bash

PS

暂时弄上面的几个块吧,如果有以后会添加。

配置一个 laravel 项目

server {
	server_name x-ac.cn;
	root '网站路径';
	index index.html index.php;
	listen 80;
	# 支持https
	include ssl.conf;
	# 优雅URL
	include laravel.conf;
	# 添加PHP支持
	include php.conf;
}
Bash

配置就上面几行,非常简单明了。

这里注意下 相对的配置文件的位置,配置文件相对的位置是 nginx 安装目录 conf 文件夹

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!