ubuntu nginx.conf 配置详解

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.com
127.0.0.1        www.demo2.com
127.0.0.1        www.demo3.com

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

service{
   ******
}

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

再编辑  

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

最终如下:

#demo
server {
    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;
}

#demo2
server {
    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;
}

#demo3
server {
    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了。


Nginx是一个高性能的HTTP和反向代理服务器,常用于静态资源服务、负载均衡、反向代理、缓存等。下面是安装和配置Nginx的详细步骤: 1. 安装Nginx 在Linux系统中,可以使用包管理器安装Nginx,例如在Ubuntu上可以使用以下命令: ``` sudo apt-get update sudo apt-get install nginx ``` 在CentOS上可以使用以下命令: ``` sudo yum install epel-release sudo yum install nginx ``` 2. 配置Nginx Nginx的主要配置文件是`nginx.conf`,可以通过编辑该文件来配置Nginx。 首先,进入Nginx配置文件目录: ``` cd /etc/nginx/ ``` 然后备份`nginx.conf`文件: ``` sudo cp nginx.conf nginx.conf.bak ``` 接着编辑`nginx.conf`文件: ``` sudo nano nginx.conf ``` 在该文件中,可以配置Nginx的监听端口、Web根目录、虚拟主机等。 例如,可以将Nginx监听端口改为80: ``` http { ... server { listen 80; ... } ... } ``` 可以设置Nginx的Web根目录: ``` http { ... server { ... root /var/www/html; ... } ... } ``` 可以配置Nginx的虚拟主机: ``` http { ... server { listen 80; server_name example.com; ... } ... } ``` 3. 检查Nginx配置文件 完成配置后,可以使用以下命令检查Nginx配置文件是否正确: ``` sudo nginx -t ``` 如果配置文件正确,会显示`nginx: configuration file /etc/nginx/nginx.conf test is successful`。 4. 重启Nginx 完成配置并检查无误后,可以使用以下命令重启Nginx: ``` sudo systemctl restart nginx ``` 现在,Nginx已经安装并配置好了。可以通过Web浏览器访问Nginx服务器来测试它是否正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值