海运的博客

Nginx官方Centos安装源

发布时间:June 11, 2014 // 分类:Nginx // No Comments

#centos6:
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
#centos5:
rpm -ivh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

或自添加:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

Debian7使用apt-get源安装LNMP

发布时间:December 5, 2013 // 分类:Nginx // No Comments

Debian7官方源添加了php-fpm软件包,现可通过apt-get快速安装部署LNMP环境了。
安装Mysql:

apt-get install -y mysql-server mysql-client

安装PHP:

apt-get install php5-cli php5-fpm php5-mysql php5-curl

安装Nginx:

apt-get install nginx-full

Nginx主配置文件为:

/etc/nginx/nginx.conf

调用虚拟主机配置文件目录:

/etc/nginx/sites-enabled/

修改默认虚拟主机配置文件支持PHP解析:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #    # With php5-cgi alone:
    #    fastcgi_pass 127.0.0.1:9000;
    #    # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

Nginx下多网站单独php-fpm进程目录权限防跨站

发布时间:March 6, 2013 // 分类:Nginx,PHP,网络安全 // No Comments

<h3>Nginx下开多个虚拟机网站防跨站是首要的任务,PHP5.3之前的版本不支持open_basedir,只能通过控制PHP-cgi进程及目录用户权限进行限制,防止跨站访问。</h3>
先了解一下网站正常运行所用到的用户、目录权限:
Nginx进程运行用户:接收用户请求,处理静态文件,如果是PHP则转给PHP-CGI处理,网站目录拥有读权限。
PHP-cgi进程用户:处理PHP文件,网站目录拥有读权限,个别目录需要写入权限。
<h3>让每个网站使用单独的PHP-CGI进程,创建PHP-FPM配置文件,修改以下:</h3>

<value name="pid_file">/usr/local/php/logs/php-fpm.pid</value>
<value name="error_log">/usr/local/php/logs/php-fpm.log</value>
<value name="listen_address">/tmp/www.haiyun.me.sock</value>
<value name="user">www.onovp.com</value>  #PHP-CGI运行用户组
<value name="group">www.haiyun.me</value>

启动PHP-CGI进程:

/usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/www.haiyun.me.conf

<h3>设置网站目录权限,设Nginx运行用户为www:</h3>

chown -R www.haiyun.me:www /home/wwwroot/www.haiyun.me
chmod -R 550 /home/wwwroot/www.haiyun.me
chmod 701 /home/wwwroot/

<h3>再修改Nginx网站配置文件,解析PHP所使用的PHP-CGI进程:</h3>

location ~ .*\.(php|php5)?$
{
fastcgi_pass  unix:/tmp/www.haiyun.me.sock;
fastcgi_index index.php;
include fcgi.conf;
}

php-cgi进程简单管理脚本:

#! /bin/sh
# chkconfig: 2345 55 25
#http://www.haiyun.me
cgi=/usr/local/php/bin/php-cgi
case "$1" in
    start)
        for conf in `ls /usr/local/php/etc/*.conf`
        do
            $cgi --fpm --fpm-config $conf
        done
    ;;

    stop)
        for pid in `ls /usr/local/php/logs/*.pid`
        do
                kill -TERM `cat $pid`
        done
    ;;

    restart)
        $0 stop
        $0 start
    ;;


    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
    ;;

esac

Nginx配置StartSSL免费SSL证书

发布时间:August 7, 2012 // 分类:Nginx,OpenSSL // No Comments

证书申请参考:StartSSL免费服务器SSL证书申请,使用自签名证书参考:Nginx配置自签名SSL证书
下载StartSSL根证书并与申请到的StartSSL证书合并到一个文件:

#http://www.haiyun.me
wget http://www.startssl.com/certs/ca.pem
wget http://www.startssl.com/certs/sub.class1.server.ca.pem
cat server.csr sub.class1.server.ca.pem ca.pem > www.haiyun.me.pem

服务器私钥如果有设置密码要清除掉,不然启动Nginx要输入SSL密码。

openssl rsa -in server.key -out www.haiyun.me.key

更改SSL证书权限:

chmod 400 www.haiyun.me.*

修改Nginx配置文件加载SSL证书:

ssl                   on;
ssl_certificate   /path/www.haiyun.me.pem;
ssl_certificate_key /path/www.haiyun.me.key;

修改fcgi配置文件传递HTTPS参数,不然当前网页为HTTPS,下一链接主回到HTTP页面了。

fastcgi_param HTTPS on;

如果网站只允许使用HTTPS连接可添加Header头通知客户端转向HTTPS连接:

add_header Strict-Transport-Security max-age=31536000;

重启Nginx加载:

/etc/init.d/nginx restart

访问http://www.haiyun.me查看SSL证书
查看www.haiyun.me证书.png

Nginx与PHP变量传递fastcgi_params

发布时间:July 1, 2012 // 分类:Nginx,PHP // No Comments

Nginx配置Fastcgi解析PHP时会调用fastcgi_params配置文件来传递服务器变量,默认内容如下:

#参数设定       #传递为PHP变量名    #Nginx自有变量,可自定义
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

可以修改配置文件设定自定义变量传递到php-cgi端:

fastcgi_param  haiyun      "Hello haiun";

新建php文件通过$_SERVER[""]变量测试:

<?
echo $_SERVER["haiyun"];
?>
curl www.haiyun.me/test.php
Hello haiyun

13-12-25更新,不推荐使用这种方式传递变量,会增加连接开销,可修改PHP-FPM配置文件传递变量:

env[haiyun] = test
分类
最新文章
最近回复
  • zzg: http://downloads.openwrt.org.cn/PandoraBox/rali...
  • xiongrui: 看图
  • 傻狍子: filebrowser好像和这功能一样? https://github.com/filebro...
  • 陶国文: 想看看能不能安装
  • 傻狍子: 服务端设置了用户名密码认证的话,在openwrt的openvpn客户端的配置文件当中该如何更改...
  • 王阴阳师: 感谢,一点不啰嗦,还很管用!
  • simon: 刚刚看了我的vps,玛德,居然也有人在一直尝试登录,幸好我的密码是强密码
  • thornbird: 又学会一招,不错
  • 头很黑: 除了发送eth转账 ,还能转账其他的代币吗 比如eos
  • 米扑博客: 总结的很棒