hi 各位,我又来了。我最近都是初心者。踩坑王就是我。
背景就是我们都知道有一个引流工具gor,为了调试这个货,我想在本地起几个不同端口的服务进行调试,所以才有了今天卧槽的经验。
配置nginx
首先我们先安装nginx
brew search nginx
brew install nginx
nginx本身的nginx.config是设置好的,如下:
<!-- lang: shell -->
worker_processes 1;
error_log /usr/local/var/log/nginx/error.log warn;
pid /usr/local/var/run/nginx.pid;
events {
worker_connections 256;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/var/log/nginx/access.log main;
port_in_redirect off;
sendfile on;
keepalive_timeout 65;
include /usr/local/etc/nginx/conf.d/*.conf;
}
如果我们想启动多个服务,那么我们需要在路径./conf.d/里面新建多个server.conf,在同一个conf里面写多个server是不允许。
所以我们新建了两个,配置如下:
<!-- lang: shell -->
server {
listen 8080; 这里写启动的端口
server_name localhost; 这里是server name
root /Users/user_name/nginx_sites/; 这里是自定义webapp的目录
location / {
index index.php; 页面文件
autoindex on;
}
#proxy the php scripts to php-fpm
location ~ \.php$ {
include /usr/local/etc/nginx/fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
}
Mac OSX自带了php-fpm,但如果直接启动会报错,说log文件路径不正确。所以我们还需要更改php-fpm.conf文件如下:
[global]
; Pid file
; Note: the default prefix is /usr/local/var
; Default Value: none
;pid = run/php-fpm.pid
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/local/var
; Default Value: log/php-fpm.log
error_log = /usr/local/var/log/php-fpm.log 此处需要自定义目录
按照如上配置,我们是可以正常启动服务的,但这个时候我们访问localhost:8080会出现403,原因是我们index.php所在的所有根目录都需要有755权限,如果没有,我们需要chmod 755 path就可以了。正常的界面如下:
gor
这就是坑的开始。先配置golang的环境以及安装gor我就不说了。
我碰见的问题是这样的。我使用命令
./gor --input-http :8080 --output-http www.verycd.com -stats -verbose
此时我访问8080界面会变成ok,这说明是gor接受到了这个input而出现的界面,如下:
同时gor的log显示让我很无语:
[DEBUG][PID 2963][1462464221018871751][1462464221018.871826ms] [HTTPClient] Connecting: http://www.verycd.com
[DEBUG][PID 2963][1462464236080793607][15061.921856ms] [HTTPClient] Connecting: http://www.verycd.com
[DEBUG][PID 2963][1462464236080850524][0.056917ms] [HTTP] Disconnected: http://www.verycd.com
[DEBUG][PID 2963][1462464247776394823][11695.544299ms] [HTTPClient] Connecting: http://www.verycd.com
[DEBUG][PID 2963][1462464247776448620][0.053797ms] [HTTP] Disconnected: http://www.verycd.com
[DEBUG][PID 2963][1462464251310765636][3534.317016ms] [HTTPClient] Connecting: http://www.verycd.com
[DEBUG][PID 2963][1462464251310821301][0.055665ms] [HTTP] Disconnected: http://www.verycd.com
此时我尝试了几个方法。
- 方法一:Google Group
group里有一个和我碰见一样的问题,我看到了作者给了最新的binary,我下载之后,mac无法识别,估计是编译模式不同导致的吧。failed - 方法二:重新下载最新的代码,go build
生成了gor,可以使用,但日志和前面一样 - 方法三:直接从官方地址去下载最新build的binary
可以使用,但日志和前面一样
到此,我要吐槽的不是这个日志了,关键是gor之后连version都不显示。我几乎可以判断gor还在demo阶段,根本无法投入正式使用这个结论。暂时到这里吧。