安装nginx并配置多站点小记
文章最后更新时间为:2018年08月14日 11:06:49
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/
多站点配置就结束了。