ubuntu nginx 安装以及配置文件详解
1.到nginx官网下载源码包。最好下载稳定版本,nginx官网http://www.nginx.org/
2.安装nginx依赖包运行命令:
sudo apt-get install libssl-dev
sudo apt-get install libpcre3 libpcre3-dev
3.解压下载的nginx源码包。检查编译环境 ./configure --prefix=/usr/local/nginx
4.编译安装 make && make install
5.到nginx安装目录执行启动命令:/usr/local/nginx/sbin/nginx
关闭命令:/usr/local/sbin/nginx -s stop (停止)
重启命令:/usr/local/sbin/nginx -s reload (重启)
启动之后浏览器中http://localhost/查看是否成功。
?
6.nginx配置文件所在目录/usr/local/nginx/conf/nginx.conf
配置文件详解如下:
#运行用户
#user? nobody;
#启动进程
worker_processes? 1;
#全局错误日志及PID文件
#error_log? logs/error.log;
#error_log? logs/error.log? notice;
#error_log? logs/error.log? info;
#pid??????? logs/nginx.pid;
#工作模式及连接数上限
events {
??? use epoll;
?? ??? worker_connections? 1024;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
??? #设定mime类型
??? include?????? mime.types;
??? default_type? application/octet-stream;
??? #设定日志格式
???? #log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '
??? ??? #????????????????? '$status $body_bytes_sent "$http_referer" '
??? ??? #????????????????? '"$http_user_agent" "$http_x_forwarded_for"';
??? ??? #access_log? logs/access.log? main;
??? ??? sendfile??????? on;
??? ??? #tcp_nopush???? on;
??? ??? #keepalive_timeout? 0;
??? ??? #客户端和nginx之间空闲链接超时时间
??? ??? keepalive_timeout? 120;
??? #设定负载均衡的服务器列表
??? upstream mysvr {
??? ??? #weigth参数表示权值,权值越高被分配到的几率越大
??? ??? #本机上的Squid开启3128端口
??? ??? server 127.0.0.1:8080 weight=1;
??? ??? #server 119.254.82.237:8080? weight=1;
??? }
??? #是否开启gzip模块
??? #gzip? on;
??? #gzip_min_length? 1100;
??? #gzip_buffers??? 4 8k;
??? #gzip_types????? text/plain;
??? #设定虚拟主机
??? server {
??? ??? listen?????? 80;
??? ??? server_name? localhost;
??? ??? #charset koi8-r;
??? ??? #设定本虚拟主机的访问日志
??? ??? #access_log? logs/host.access.log? main;
??? ??? #location / {
??? ??? #??? root?? html;
??? ??? #??? index? index.html index.htm;
??? ????? ??? ?# }
??? ??? #error_page? 404????????????? /404.html;
??? ??? # redirect server error pages to the static page /50x.html
??? ??? #
??? ??? error_page?? 500 502 503 504? /50x.html;
??? ??? location = /50x.html {
??? ??? ??? root?? html;
??? ??? }
??? ??? # proxy the PHP scripts to Apache listening on 127.0.0.1:80
??? ??? #
??? ??? #location ~ \.php$ {
??? ??? #??? proxy_pass?? http://127.0.0.1;
??? ??? #}
??? ??? # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
??? ??? #
??? ??? #location ~ \.php$ {
??? ??? #??? root?????????? html;
??? ??? #??? fastcgi_pass?? 127.0.0.1:9000;
??? ??? #??? fastcgi_index? index.php;
??? ??? #??? fastcgi_param? SCRIPT_FILENAME? /scripts$fastcgi_script_name;
??? ??? #??? include??????? fastcgi_params;
??? ??? #}
??? ??? # deny access to .htaccess files, if Apache's document root
??? ??? # concurs with nginx's one
??? ??? #
??? ??? #location ~ /\.ht {
??? ??? #??? deny? all;
??? ??? #}
??? ??? #对 "/" 启用负载均衡
??? ??? location / {
??? ??? ??? proxy_pass????? http://mysvr;
??? ??? ??? proxy_redirect????????? off;
??? ??? ??? proxy_set_header??????? Host $host;
??? ??? ??? proxy_set_header??????? X-Real-IP $remote_addr;
??? ??? ??? proxy_set_header??????? X-Forwarded-For $proxy_add_x_forwarded_for;
??? ??? ??? #客户端body中最大数据量
??? ??? ??? client_max_body_size??? 10m;
??? ??? ??? client_body_buffer_size 128k;
??? ??? ??? # 链接到主机超时时间
??? ??? ??? proxy_connect_timeout? 90;
??? ??? ??? # 向主机发送数据超时时间
??? ??? ??? proxy_send_timeout????? 90;
??? ??? ??? # 从主机读取数据超时时间
??? ??? ??? proxy_read_timeout????? 90;
??? ??? ??? proxy_buffer_size????? 4k;
??? ??? ??? proxy_buffers????????? 4 32k;
??? ??? ??? proxy_busy_buffers_size 64k;
??? ??? ??? proxy_temp_file_write_size 64k;
??? ??? }
??? }
??? # another virtual host using mix of IP-, name-, and port-based configuration
??? #server {
??? #??? listen?????? 8000;
??? #??? listen?????? somename:8080;
??? #??? server_name? somename? alias? another.alias;
??? #??? location / {
??? #??????? root?? html;
??? #??????? index? index.html index.htm;
??? #??? }
??? #}
}