nginx
一
sudo apt-get install nginx php5-cli php5-cgi php5-memcache php5-mcrypt php5-gd php5-curl mysql-server mysql-client php5-mysql lighttpd rcconf
sudo service lighttpd stop 停止lighttpd
sudo rcconf 去掉lighttpd开机自启动
二 nginx的配置:
设置nginx系统全局配置
sudo vim /etc/nginx/nginx.conf
在nginx.conf写入如下配置:
user www-data;
worker_processes 2; #设置占用CPU进程数
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#diy1
worker_rlimit_nofile 51200; #设置访问nginx最大连接数
events {
use epoll; #设置访问模式
worker_connections 51200; #设置访问最大连接数
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#设置fastcgi相关参数:连接,发送,读取时间以及缓存大小等
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#设置文件压缩相关参数
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
单个web网站配置
sudo vim /etc/nginx/sites-available/default
在default中写入如下配置:
server {
listen 2080; #设置网站访问端口号
server_name a.a; #设置访问网站域名或者ip
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/nginx-default; #设置网站根目录路径
index index.php index.html index.htm; #设置首页文件类型
}
#启用fastcgi并设置相关参数
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; #设置网站脚本目录路径
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT "网站根目录路径"; #设置网站文档目录路径
}
#关闭一些多余文件日志
location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$
{
root /var/www/nginx-default;
access_log off;
}
}
在/etc/nginx/sites-enable/目录下设置单个web网站配置文件的软连接
sudo ln -s 配置文件名称 /etc/nginx/sites-available/配置文件名称
负载均衡控制服务器上的nginx设置
在负载均衡控制服务器上/etc/nginx/sites-available/目录下新建nginxctrl文件
在nginxctrl写入如下配置:
#设置负载机器IP以及负载权重
upstream bk{
ip_hash;
server 192.168.2.201:2080 weight=10;
server 192.168.2.202:2080 weight=10;
}
#设置需要负载的网站ip或者域名
server {
listen 80;
server_name a.a;
location /{
proxy_pass http://bk;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
在/etc/nginx/sites-enable/目录下设置nginxctrl软连接
sudo ln -s nginxctrl /etc/nginx/sites-available/nginxctrl
启动fastcgi php:
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
设置php-cgi开机自启动:
sudo vim /etc/init.d/nginx
找到在相应位置插入如下语句:
start)
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
echo "$NAME."
stop)
echo -n "Stopping $DESC: "
pkill -9 php-cgi
echo "$NAME."
重新启动nginx:
sudo service nginx stop
sudo service nginx start
关闭php-cgi日志
sudo vim /etc/php5/cgi/php.ini
找到下面一行
display_errors = On
更改为
display_errors = Off
保存重启php-cgi
pkill -9 php-cgi
sudo spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -g www-data -f /usr/bin/php-cgi
nginxURL重写
#设置跳转标志
set $urlgo '0';
#设置例外标志
set $urlgo2 '';
#根据端口设置标志
if ($server_port ~ ^(80)$) {
set $tmp '1';
}170
if ($server_port ~ ^(443)$) {
set $tmp '2';
}
#设置需要强跳到443的标志位
if ($request_filename ~* .*(test.php|login.php|modifypass.php|pay.php|reg.php|pay_bank.php|pay_mobile.php|usercode.php)$ ) {
set $urlgo '1';
}
#例外文件
if ($request_filename ~* .*\.(js|jpg|jpeg|css|bmp|gif|png)$ ) {
set $urlgo2 '1';
}
#例外文件
if ($request_filename ~* .*(code_new|ajax)\.php$ ) {
set $urlgo2 '1';
}
set $tmp $tmp$urlgo$urlgo2;
#需要转到443
if ($tmp ~ ^(11)$){
set $X-Test $tmp;
rewrite ^/(.*)$ https://$http_host/$1 permanent;
}
#需要转到80
if ($tmp ~ ^(20)$){
set $X-Test $tmp;
rewrite ^/(.*)$ http://$http_host/$1 permanent;
}
重定向 rewrite ^/(.*)$ http:// permanent;