ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点

特点:

  • Nginx 可以部署在网络上使用 FastCGI,脚本,SCGI 处理程序,WSGI 应用服务器或 Phusion 乘客模块的动态 HTTP 内容,并可作为软件负载均衡器。
  • Nginx 使用异步事件驱动的方法来处理请求。 Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。

  • Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux作业系统下,nginx使用epoll事件模型,得益于此,nginx在Linux作业系统下效率相当高。同时Nginx在OpenBSD或FreeBSD作业系统上采用类似于epoll的高效事件模型kqueue。

实现两个域名,打开两个不同的站点

  • 把0522.com和0o0.live解析到同一个IP
  • 检查nginx配置文件

vim /etc/nginx/nginx.conf

确保,配置文件的http{}大括号里有:

include /etc/nginx/conf.d/*.conf

例如:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;    #就是这里,如果前面有#号,请把#号去掉
        include /etc/nginx/sites-enabled/*;
}
  • 在目录/etc/nginx/conf.d/下面新建两个文件:
0522.conf
0o0.conf #.conf前的名字随你

写入以下内容:

server
{
listen       80;
server_name 0522.us www.0522.us;   #这里填写你的域名,包括无www301转向有www
index index.html index.htm index.php default.html default.htm default.php;
root  /var/www/0522.us;     #这里填写域名对应的站点根目录


location / {
try_files $uri $uri/ /index.php;

}

location ~ \.php$ {
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}



location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires      30d;
}

location ~ .*\.(js|css)?$
{
expires      30d;
}


}
  • 以上是0522.conf的内容
server
{
listen       80;
server_name 0o0.live www.0o0.live;
index index.html index.htm index.php default.html default.htm default.php;
root  /var/www/0o0.live;     


location / {
try_files $uri $uri/ /index.php;

}

location ~ \.php$ {
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}



location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires      30d;
}

location ~ .*\.(js|css)?$
{
expires      30d;
}


}

以上是0o0.conf的内容

  • 重启nginx
sudo service nginx restart  #所有nginx的设置要重启后才先效
  • 分别上传两个域名的不同网站文件到相应的网站根目录

例如:

0522.us域名上传网站文件到/var/www/0522.us目录下
0o0.live域名上传网站文件到/var/www/0o0.live目录下
#你的域名上传到你自己设置的根目录

完美

标签:UbuntuNginx 发布于:2019-11-07 04:50:09