server {
###项目所用端口(如果是要配置项目域名访问,最好用80,如果要ip地址访问,可以使用自定义的端口号,例如:8080)
listen 80;
###项目域名(如果是要本地ip访问,则用location或者127.0.0.1皆可)
server_name www.tp51.com;
####ssl加密证书(443端口时使用)
##ssl on; ###开启ssl
##ssl_certificate /app/cert/local.crt; ##证书
##ssl_certificate_key /app/cert/local_nopwd.key; ###私钥
###项目目录
root /app/test-tp51/public;
###日志文件设置
# access_log /var/log/nginx/localhost.access.log;
###地址匹配块
location / {
##默认请求文件:前后顺序有关系,越在前优先级别越高
index index.html index.htm index.php;
###try_files尝试读取文件,后面三个参数顺序即为优先级,先尝试从第一个参数找需要访问的文件,依次下去,第三个参数为nginx内部子请求地址.
###第一个参数$uri这个是nginx的一个变量,存放着用户访问的地址,
###比如:http://www.AAA.com/a/b/aaa.html, 那么$uri就是/a/b/aaa.html
###第二个参数$uri/相对于第一个参数则为/a//a/b/aaa.html/+indexb/aaa.html/,此时把aaa.html当作一个目录,则此时要找的文件是 /a/b/aaa.html/(index.html|index.htm|index.php)
###第三个参数/index.php?$query_string;在第一和第二个参数都没找到文件的情况下,则向第三个参数发起一个内部子请求;比如http://www.AAA.com/a/b/?id=5,则访问地址为http://www.AAA.com/index.php?id=5
try_files $uri $uri/ /index.php?$query_string;
###返回json格式数据用
#default_type application/json;
#return 502 '{"status":$uri,"msg":"服务正在升级,请稍后再试……$uri/"}';
###如果filename存在,则为真,否则做伪静态映射
#if (!-e $request_filename){
# rewrite ^(.*)$ /index.php?s=$1 last;
# break;
#}
}
####上面的对index.php的请求会被此模块抓取住,从而进入fastcgi处理程序
location ~ .+\.php($|/) {
##NOTE: 'fpmservice' in this conatiner is associated with the alias name in docker run option '--link=PHP_FPM_CONTAINER_NAME:fpmservice'
###php服务地址,正常非docker情况下,直接写127.0.0.1:9000即可,但是因为我用的docker,所以写的是php容器的别名fpmservice
fastcgi_pass fpmservice:9000;
fastcgi_index index.php;
###SCRIPT_FILENAME默认为$fastcgi_script_name(例/a/b),这里给重新设置加上$document_root(例/app),此变量值设置为了/app/a/b
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
###fastcgi_params 文件中含有各个nginx常量的定义
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}