安装nginx并配置多站点小记

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

1. 安装

ubuntu下可直接命令行安装

sudo apt-get install nginx

centos下类似:

sudo yum install nginx

本人在ubuntu下安装完之后,就可以直接查看web页面了,显示的是nginx的初始页面。

2. 配置

关于各种文件的安装位置:

  • 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
  • 启动程序文件在/usr/sbin/nginx
  • 并已经在/etc/init.d/下创建了启动脚本nginx
  • 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置)
  • 日志放在了/var/log/nginx中,分别是access.log和error.log

其中我们主要需要修改的是/etc/nginx目录下面的配置文件。初始时默认配置文件为/etc/nginx/sites-available/default。
我们可以打开default配置文件修改内容,关于配置文件的参数大致如下:

# 用户名和用户组,默认即可
user  www www;

# 进程数,建议设置为cpi总核心数,一般设置为auto即可
worker_processes auto;

#错误日志
error_log  /home/wwwlogs/nginx_error.log  crit;

#进程文件
pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
#工作模式及连接数上限
events
    {   
        #使用epoll事件驱动
        #Nginx支持众多的事件驱动,比如select、poll、epoll
        #epoll仅用于linux2.6以上内核,可以大大提高nginx的性能
        use epoll; 
        worker_connections 51200; #单个进程最大连接数
        #设置一个进程是否同时接受多个网络连接,默认为off
        #打开可提高性能
        multi_accept on;
        #设置网路连接序列化,防止惊群现象发生
        #小站打开可提高性能,流量大的网站建议关闭
        multi_accept on;  
    }
# 设定http服务器
http
    {    
    #文件扩展名与文件类型映射表
        include    mime.types;
    #默认文件类型
        default_type  application/octet-stream;

        #设定请求缓冲
        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

    # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来传输文件
        sendfile   on;

    #防止网络堵塞
        tcp_nopush on;

    # 连接超时时间
        keepalive_timeout 60;

        #避免数据在缓冲区的延迟,小站建议开启
        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 256k;

        #开启gzip压缩以及相关设置
        gzip on; #开启gzip压缩输出
        gzip_min_length  1k; #最小压缩文件大小
        gzip_buffers     4 16k; #压缩缓冲区
        gzip_http_version 1.1; #压缩版本
        gzip_comp_level 2; #压缩等级
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; #压缩类型
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";


        #隐藏HTTP头中的nginx版本号,强烈建议开启
        server_tokens off;
        #取消服务日志  
        access_log off;

server {
    listen 80 ; #端口
    server_name www.xiaogeng.top;#定义使用www.xiaogeng.com访问,
    root /var/www/www.xiaogeng.top; #该网站sever对应的根目录,可根据需求修改
        # 文件类型
    index index.html index.htm index.nginx-debian.html;
        #设定本虚拟主机的访问日志
        access_log  /var/logs/access.log;
        #默认请求
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
        #定义错误提示页面
         error_page   500 502 503 504 /50x.html;  
         location = /50x.html {
            root   /var/www/www.xiaogeng.top;
         }
}
}

以上只是最初始的选项设置,还有很多负载均衡,优化的选项,初始文件都没有给出,我们可以根据需要自行加上设置。

3. 配置多站点

可以把所有网站配置写到一个配置文件中,也可以分开写。

这里分开写以后方便各自修改,新建一个other.xiaogeng.top.conf文件,里面写上:

server {
    listen       80;
    server_name   other.xiaogeng.top;
    root   /var/www/other.xiaogeng.top/;
    location / {
        index  index.php index.html index.htm;
    }
}

这是最基本的选项,可以根据需要配置其他选项。
然后在原conf文件中的http部分加上:

http {
    ...
    include /etc/nginx/sites-available/other.xiaogeng.top.conf;
}

也可以直接把所有网站的sever部分写在主配置文件的http部分里面。

重启服务器:

sudo /etc/init.d/nginx restart

也可以

service nginx restart

到这里两个网站根目录分别是

  • /var/www/other.xiaogeng.top/
  • /var/www/www.xiaogeng.top/

多站点配置就结束了。

1 + 6 =
快来做第一个评论的人吧~