安装、配置Nginx 0.7.14
三、安装Nginx 0.7.14
1、安装Nginx所需的pcre库:
tar zxvf pcre-7.7.tar.gz
cd pcre-7.7/
./configure
make && make install
cd ../
2、安装Nginx
tar zxvf nginx-0.7.14.tar.gz
cd nginx-0.7.14/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
3、创建Nginx日志目录
mkdir -p /data1/logs
chmod +w /data1/logs
chown -R www:www /data1/logs
4、创建Nginx配置文件
①、在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件:
rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf
输入以下内容:
引用
user www www;
worker_processes 8;
error_log /data1/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
?use epoll;
?worker_connections 51200;
}
http
{
?include mime.types;
?default_type application/octet-stream;
?#charset gb2312;
?
?server_names_hash_bucket_size 128;
?client_header_buffer_size 32k;
?large_client_header_buffers 4 32k;
?
?sendfile on;
?tcp_nopush on;
?keepalive_timeout 60;
?tcp_nodelay on;
?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.0;
?gzip_comp_level 2;
?gzip_types text/plain application/x-javascript text/css application/xml;
?gzip_vary on;
?#limit_zone crawler $binary_remote_addr 10m;
?server
?{
?listen 80;
?server_name blog.s135.com;
?index index.html index.htm index.php;
?root /data0/htdocs/blog;
?#limit_conn crawler 20;
?location ~ .*\.(php|php5)?$
?{
?#fastcgi_pass unix:/tmp/php-cgi.sock;
?fastcgi_pass 127.0.0.1:9000;
?fastcgi_index index.php;
?include fcgi.conf;
?}
?
?location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
?{
?expires 30d;
?}
?location ~ .*\.(js|css)?$
?{
?expires 1h;
?}
?log_format access '$remote_addr - $remote_user [$time_local] "$request" '
?'$status $body_bytes_sent "$http_referer" '
?'"$http_user_agent" $http_x_forwarded_for';
?access_log /data1/logs/access.log access;
?}
?server
?{
?listen 80;
?server_name www.s135.com;
?index index.html index.htm index.php;
?root /data0/htdocs/www;
?location ~ .*\.(php|php5)?$
?{
?#fastcgi_pass unix:/tmp/php-cgi.sock;
?fastcgi_pass 127.0.0.1:9000;
?fastcgi_index index.php;
?include fcgi.conf;
?}
?log_format wwwlogs '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
?access_log /data1/logs/wwwlogs.log wwwlogs;
?}
?server
?{
?listen 80;
?server_name status.blog.s135.com;
?location / {
?stub_status on;
?access_log off;
?}
?}
}
②、在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件:
vi /usr/local/webserver/nginx/conf/fcgi.conf
输入以下内容:
引用
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE 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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
5、启动Nginx
ulimit -SHn 51200
/usr/local/webserver/nginx/sbin/nginx
四、配置开机自动启动Nginx + PHP
vi /etc/rc.local
在末尾增加以下内容:
引用
ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx
五、优化Linux内核参数
vi /etc/sysctl.conf
在末尾增加以下内容:
引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
使配置立即生效:
/sbin/sysctl -p
六、在不停止Nginx服务的情况下平滑变更Nginx配置
(1)、修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx -t
如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully
(2)、这时,输入以下命令查看Nginx主进程号:
ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'
屏幕显示的即为Nginx主进程号,例如:
6302
这时,执行以下命令即可使修改过的Nginx配置文件生效:
kill -HUP 6302
或者无需这么麻烦,找到Nginx的Pid文件:
kill -HUP `cat /usr/local/webserver/nginx/nginx.pid`