ubuntu nginx.conf 配置详解

来源:互联网 发布:管道应力计算软件 编辑:程序博客网 时间:2024/06/07 16:17

1、nginx.conf 文件,路径为:/etc/nginx/nginx.conf

#使用的用户和组user www-data; #指定工作衍生进程数(一般等于CPU总核数或总核数的两倍)worker_processes 4;#指定PID存放的路径pid /run/nginx.pid;#指定文件描述符数量worker_rlimit_nofile 51200;events {    #使用的网络I/O模型,linux戏台推荐采用epoll模型,freebsd系统采用kqueue模型    use epoll;    #允许最大连接数    worker_connections 51200;    # multi_accept on;}http {    ##    # 基础设置    ##    sendfile on;    tcp_nopush on;    tcp_nodelay on;    keepalive_timeout 65;    types_hash_max_size 2048;    # server_tokens off;    server_names_hash_bucket_size 128;    # server_name_in_redirect off;    include /etc/nginx/mime.types;    default_type application/octet-stream;    ##    # 日志设置    ##    #指定错误日志存放路径数, 错误日志记录的级别可选项为:[debug|info|notice|warn|error|crit]    access_log /var/log/nginx/access.log;    error_log /var/log/nginx/error.log;    ##    # 压缩设置    ##    gzip on;    gzip_disable "msie6";    gzip_vary on;    # gzip_proxied any;    gzip_comp_level 2;    gzip_buffers 4 16k;    gzip_http_version 1.1;    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;    ##    # nginx-naxsi config    ##    # Uncomment it if you installed nginx-naxsi    ##    #include /etc/nginx/naxsi_core.rules;    ##    # nginx-passenger config    ##    # Uncomment it if you installed nginx-passenger    ##        #passenger_root /usr;    #passenger_ruby /usr/bin/ruby;    ##    # 虚拟主机设置    ##    include /etc/nginx/conf.d/*.conf;    include /etc/nginx/sites-enabled/*;}#mail {#    # See sample authentication script at:#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript# #    # auth_http localhost/auth.php;#    # pop3_capabilities "TOP" "USER";#    # imap_capabilities "IMAP4rev1" "UIDPLUS";# #    server {#        listen     localhost:110;#        protocol   pop3;#        proxy      on;#    }# #    server {#        listen     localhost:143;#        protocol   imap;#        proxy      on;#    }#}

2、default 服务主机配置文件,路径为:/etc/nginx/sites-available/default

#主机server {    listen 80;    server_name www.demo.com;    root /home/zxl/wwwroot/demo/;    index index.php index.html index.htm;    #如果没有可访问目录或文件    if (!-e $request_filename) {        #将访问路径跳转至根目录下的index.php接受处理        rewrite  ^/(.*)$  /index.php/$1  last;        break;    }     #处理请求路径满足匹配 .php  的响应   # “ location ~ \.php ” == “ location ~ \.php($|/) ”   #第一句的意思是如果请求字符中匹配到“ .php ”字符,就交给php解析器处理   #第二句的意思是如果请求字符中匹配到以“ .php ”字符为结尾的或 “ .php/ ” 字符,就交给php解析器处理   #推荐采纳第二句    location ~ \.php($|/)    {        #响应请求处理入口,使用php-fpm进行管理        fastcgi_pass unix:/var/run/php5-fpm.sock;        fastcgi_index index.php;        fastcgi_split_path_info ^(.+\.php)(.*)$;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        include fastcgi_params;    }    #配置静态图片文件客户端缓存时间    location ~ .*\.(gif|jgp|jpeg|png|bmp|swf)$    {        expires 30d; #30天    }    #配置js、css文件客户端缓存时间    location ~ .*\.(js|css)?$    {        expires 1h; #1小时    }    #设置访问日志保存格式    #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 /var/log/nginx/access.log access;}

虚拟主机的绑定:
可以是同主机多IP,二是同IP多虚拟主机方式。
同主机多IP的方式,是使用网卡回环功能,同一网卡绑定多个ip。


 同IP多虚拟主机方式(推荐,很适合开发者同时开发多个项目的情况下使用):
本地开发的时侯给每个虚拟主机设定一个域名,
编辑 /etc/hosts 文件:

127.0.0.1        www.demo.com127.0.0.1        www.demo2.com127.0.0.1        www.demo3.com

在编辑 /etc/nginx/sites-available/default 文件

service{   ******}

拷贝该代码体,复制你要的虚拟机个数数。

再编辑  

    server_name www.demo2.com; //设置为你设定好的域,依次类推    root /home/zxl/wwwroot/demo2; 

最终如下:

#demoserver {    listen 80;    server_name www.demo.com;    root /home/zxl/wwwroot/demo/;    index index.php index.html index.htm;    if (!-e $request_filename) {        rewrite  ^/(.*)$  /index.php/$1  last;        break;    }    location ~ \.php    {        #响应请求处理入口,使用php-fpm进行管理        fastcgi_pass unix:/var/run/php5-fpm.sock;        fastcgi_index index.php;        fastcgi_split_path_info ^(.+\.php)(.*)$;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        include fastcgi_params;    }    location ~ .*\.(gif|jgp|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 /var/log/nginx/access.log access;}#demo2server {    listen 80;    server_name www.demo2.com;    root /home/zxl/wwwroot/demo2/;    index index.php index.html index.htm;    if (!-e $request_filename) {        rewrite  ^/(.*)$  /index.php/$1  last;        break;    }    location ~ \.php    {        #响应请求处理入口,使用php-fpm进行管理        fastcgi_pass unix:/var/run/php5-fpm.sock;        fastcgi_index index.php;        fastcgi_split_path_info ^(.+\.php)(.*)$;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        include fastcgi_params;    }    location ~ .*\.(gif|jgp|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 /var/log/nginx/access.log access;}#demo3server {    listen 80;    server_name www.demo3.com;    root /home/zxl/wwwroot/demo3/;    index index.php index.html index.htm;    if (!-e $request_filename) {        rewrite  ^/(.*)$  /index.php/$1  last;        break;    }    location ~ \.php    {        #响应请求处理入口,使用php-fpm进行管理        fastcgi_pass unix:/var/run/php5-fpm.sock;        fastcgi_index index.php;        fastcgi_split_path_info ^(.+\.php)(.*)$;        fastcgi_param PATH_INFO $fastcgi_path_info;        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        include fastcgi_params;    }    location ~ .*\.(gif|jgp|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 /var/log/nginx/access.log access;}

如此,你便可访问 www.demo.com www.deom2.com www.demo3.com 了!

如果在正式的生产环境的话,则需要你的DNS服务器指定到你所在的服务器IP了。


0 0
原创粉丝点击