邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

阿里云服务器执行df和du查看磁盘结果不一致
lsof | grep deleted (如果lsof命令不存在,执行yum install lsof进行安装)

我这里执行后,显示都是nginx相关进程

于是我执行
nginx -s reload
如果不行,可以执行
killall nginx; nginx -c /usr/local/nginx/conf/nginx.conf
linux查看某个进程的安装目录
1.=====获取到进程号=====
ps aux|grep php-fpm 
得到php-fpm的master进程的id号是10100

2.=====查看安装目录=====
ll /proc/10100/exe
centos7下gcc升级
=====下载地址=====
https://ftp.gnu.org/gnu/gcc/

=====下载gcc和相关依赖=====
wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
tar -zxvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites //相关依赖


=====建立存放编译文件的文件夹+编译=====
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0/
../configure --prefix=/usr/local/gcc5 --enable-languages=c,c++,go  --disable-multilib
make  //耗时很长很长
make install 

=====复制命令=====
rm -f /usr/bin/gcc
rm -f /usr/bin/g++
ln -s /usr/local/gcc5/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc5/bin/g++ /usr/bin/g++


=====关联新的动态库=====
cd /usr/local/gcc5/lib64/
cp libstdc++.so.6.0.21 /usr/lib64/
rm -rf /usr/lib64/libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6
centos7下安装gitlab问题总结
=====问题1 执行 systemctl start  postfix
Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.=====

解决方法
vim /etc/postfix/main.cf 
myhostname = mail.flycoder.cn
mydomain = flycoder.cn
myorigin = $mydomain
inet_interfaces = localhost // all表示接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost  //指定发给本地邮件的域名
inet_protocols = ipv4
centos7下安装gitlab并修改访问端口
centos7下安装gitlab并修改访问端口

官网安装说明
https://about.gitlab.com/install/#centos-7

1.=======================
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

2.=======================
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

3.=======================
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
yum install -y gitlab-ee
gitlab-ctl reconfigure //如果没有启动gitlab再执行,我的没有启动

ps:这个时候就可以通过服务器的地址直接访问了,第一次进入需要修改密码,用户名root


4.=======启动/暂停/重启=======
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart


5.=========修改端口=============

vim /etc/gitlab/gitlab.rb
external_url 'http://我的服务器地址:8081'
nginx['listen_port'] = 8081

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
listen *:8081;
server_name localhost;
if ($http_host = "") {
set $http_host_with_default "localhost:8081";
}
然后执行
gitlab-ctl restart 
nginx中fastcgi_param参数说明
fastcgi_param  QUERY_STRING       $query_string;  #请求的参数;如?app=123
fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)
fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段
fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称
fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数
fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。
fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值 
fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1; #cgi 版本
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version; #nginx 版本号,可修改、隐藏

fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP
fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口
fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址
fastcgi_param  SERVER_PORT        $server_port; #服务器端口
fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
nginx负载均衡 - 根据url做一致性hash
nginx负载均衡 - 根据url做一致性hash

目标:按照指定的参数(如分类/商品编号)做一致性hash,从而保证相同数据到一台机器上

先说下nginx里$request_uri和$uri的区别
$request_uri
This variable is equal to the *original* request URI as received from the client including the args. It cannot be modified. Look at $uri for the post-rewrite/altered URI. Does not include host name. Example: "/foo/bar.php?arg=baz" 
这个变量等于从客户端发送来的原生请求URI,包括参数。它不可以进行修改。$uri变量反映的是重写后/改变的URI。不包括主机名。例如:"/foo/bar.php?arg=baz"
$uri
This variable is the current request URI, without any arguments (see $args for those). This variable will reflect any modifications done so far by internal redirects or the index module. Note this may be different from $request_uri, as $request_uri is what was originally sent by the browser before any such modifications. Does not include the protocol or host name. Example: /foo/bar.html 
这个变量指当前的请求URI,不包括任何参数(见$args)。这个变量反映任何内部重定向或index模块所做的修改。注意,这和$request_uri不同,因$request_uri是浏览器发起的不做任何修改的原生URI。不包括协议及主机名。例如:"/foo/bar.html"
 
$document_uri
The same as $uri. 
同$uri.

实现步骤
第一步:在nginx中做简单配置,先实现轮训,域名可以根据自己的来
server {
    listen       80;
    server_name  default www.test.com;
    location / {
        proxy_pass http://www_posts;
        index index.html index.htm;
    }
}

upstream www_posts {
    server 127.0.0.1:7001;
    server 127.0.0.1:7002;
    server 127.0.0.1:7003;
}

server {
    listen       7001;
    server_name  default www.test.com;
    location / {
        root   /data/www/post1/;
        index index.html index.htm;
    }
}
server {
    listen       7002;
    server_name  default www.test.com;
    location / {
        root   /data/www/post2/;
        index index.html index.htm;
    }
}
server {
    listen       7003;
    server_name  default www.test.com;
    location / {
        root   /data/www/post3/;
        index index.html index.htm;
    }
}

完成后 重启nginx

第二步创建程序文件
mkdir /data/www/post1; cd /data/www/post1;
vim 1.html //写入 1-1
vim 2.html //写入 1-2
vim 3.html //写入 1-3
mkdir /data/www/post2; cd /data/www/post2;
vim 1.html //写入 2-1
vim 2.html //写入 2-2
vim 3.html //写入 2-3
mkdir /data/www/post3; cd /data/www/post3;
vim 1.html //写入 3-1
vim 2.html //写入 4-2
vim 3.html //写入 3-3

通过浏览器访问 www.test.com/1.html,不断刷新,可分别出现1-1,2-1,3-1

第三步 自定义hash key

在server-location中加入
if ( $uri ~* "^\/(\d+).html$" ){ set $defurlkey $1; }
修改upstream,结果如下
upstream www_posts {
hash $defurlkey;
    server 127.0.0.1:7001;
    server 127.0.0.1:7002;
    server 127.0.0.1:7003;
}

可通过分别访问,测试结果
www.test.com/1.html
www.test.com/2.html
www.test.com/3.html


php+nginx+mysql+apache查看其编译参数
查看nginx编译参数:/usr/local/nginx/sbin/nginx -V

查看php编译参数:/usr/local/php/bin/php -i | grep configure

查看mysql编译参数:cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE //待纠正

查看apache编译参数:cat /usr/local/apache2/build/config.nice   //待认证

优惠券
广告位-淘宝
最新微语