Nginx配置proxy_cookie_domain

页面地址是a.com,但是要用b.com的cookie需要
proxy_set_header Cookie $http_cookie;
location / {
proxy_cookie_domain b.com a.com;  #注意别写错位置了 proxy_cookie_path / /;
proxy_pass http://b.com;
 }   
参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

nginx搭建wordpress

server {
    listen 80;
    root /data/blog.phpfs.com;
    server_name blog.phpfs.com;
    index index.html index.htm index.php;
    access_log /data/logs/nginx/blog.phpfs.com-access.log;
    error_log /data/logs/nginx/blog.phpfs.com-error.log;

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
        #access_log off;
        expires 7d;
    }
    location ~ \.php {
        fastcgi_pass unix:/dev/shm/php5-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

 
参考:
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/

Nginx搭建Https服务器

mkdir -p /etc/nginx/ssl
生成私钥
openssl genrsa -des3 -out server.key 1024
提示输入密码和确认密码
生成证书
openssl req -new -key server.key -out server.csr
提示输入密码,国家,省份,城市,组织等信息
生成无密码私钥
openssl rsa -in server.key -out public.key
颁发证书
openssl x509 -req -days 365 -in server.csr -signkey public.key -out server.crt
配置nginx站点

server {
    listen 443;
    ssl on;
    ssl_certificate  /etc/nginx/ssl/server.crt;
    ssl_certificate_key  /etc/nginx/ssl/public.key;
    server_name test.phpfs.com;
    root /data/html/test.phpfs.com/;
    location / {
       autoindex on;
    }
}

配置apache站点
提示:Invalid command ‘SSLEngine’, perhaps misspelled or defined by a module not included in the server configuration
Action ‘configtest’ failed.
需要启用sudo a2enmod ssl


	ServerName test.phpfs.com
	DocumentRoot /var/www/html/test
	SSLEngine on
    SSLCertificateFile /etc/nginx/ssl/server.crt
    SSLCertificateKeyFile /etc/nginx/ssl/public.key



nginx-https-1

nginx配置https

1、生成RSA密钥的方法

openssl genrsa -des3 -out privkey.pem 2048
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:
openssl genrsa -out privkey.pem 2048
建议用2048位密钥,少于此可能会不安全或很快将不安全。

2、生成一个证书请求
openssl req -new -key privkey.pem -out cert.csr
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

3.配置nginx

server
{
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
server_name blog.phpfs.com;
index index.html index.htm index.php;
root /home/joyous;
}

Nginx配置中Location语法详解

1、语法:location [=|~|~*|^~] /uri/ { … }
= 为完全匹配
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~* 分别为区分大小写不匹配及不区分大小写不匹配
^~ 开头表示uri以某个常规字符串开头
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,
最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
注意规则匹配到则执行匹配
Continue reading

Nginx前端,apache后端获取真实IP

http://www.stderr.net/apache/rpaf/download/

需要使用apxs命令(这个命令在httpd-devel,可以使用yum install httpd-devel)
1、执行apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

2、 编辑vi /etc/httpd/conf/httpd.conf
添加如下代码
LoadModule rpaf_module modules/mod_rpaf-2.0.so
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.1.187#nginx服务器IP
RPAFheader X-Forwarded-For
</IfModule>

3、定义日志格式

LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” varnishcombined

4、开启日志
CustomLog logs/access_log varnishcombined
5、程序获取客户端真实IP
$user_IP = isset($_SERVER[‘HTTP_X_FORWARDED_FOR’]) ? $_SERVER[‘HTTP_X_FORWARDED_FOR’] : $_SERVER[“REMOTE_ADDR”];

nginx编译参数详解

Nginx 使用 liunx/Unix 下常用的 ‘./configure && make && make install’ 过程来编译安装。

configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。

configure 支持下面的选项:

–prefix=<path> – Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。
Continue reading