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目录下 #你的域名上传到你自己设置的根目录
完美
原文出处:0lddriver -> http://www.0lddriver.com/ubuntu-16-04%E9%85%8D%E7%BD%AEnginx%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AAip%E4%B8%80%E4%B8%AA%E7%AB%AF%E5%8F%A3%E5%A4%9A%E4%B8%AA%E7%AB%99%E7%82%B9/