我的位置:速网百科 > 电商资讯 虚拟主机

nginx虚拟主机数据,阿里云虚拟主机nginx配置

作者:卢兴德 时间:2022-05-19 11:21:13

电脑主机虚拟机上配置的nginx可不可以被别的电脑访问(主机之外的)?

电脑主机虚拟机上配置的nginx可不可以被别的电脑访问(主机之外的)?

  虚拟机装在移动硬盘带到别的电脑,就不能直接用了。因为虚拟机本质上只是一款软件而已,其安装在电脑上要在C盘建立相应的注册表信息,才能在电脑上被打开、调用。但是如果被移动硬盘带到别的电脑上,注册表信息就是去了,就无法被寻找、调用了。
  虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。

linux配置nginx虚拟主机?

  安装PCRE(Perl兼容的正则表达式库,解压与编译过程已省略):
  [root@linuxprobe ~]# cd /usr/local/src
  [root@linuxprobe src]# mkdir /usr/local/pcre
  [root@linuxprobe src]# tar xzvf pcre-8.35.tar.gz
  [root@linuxprobe src]# cd pcre-8.35
  [root@linuxprobe pcre-8.35]# ./configure --prefix=/usr/local/pcre
  [root@linuxprobe pcre-8.35]# make
  [root@linuxprobe pcre-8.35]# make install
  安装openssl服务程序(解压与编译过程已省略):
  [root@linuxprobe pcre-8.35]# cd /usr/local/src
  [root@linuxprobe src]# mkdir /usr/local/openssl
  [root@linuxprobe src]# tar xzvf openssl-1.0.1h.tar.gz
  [root@linuxprobe src]# cd openssl-1.0.1h
  [root@linuxprobe openssl-1.0.1h]# ./config --prefix=/usr/local/openssl
  [root@linuxprobe openssl-1.0.1h]# make
  [root@linuxprobe openssl-1.0.1h]# make install
  把openssl服务程序命令目录添加到环境变量中(永久生效):
  [root@linuxprobe pcre-8.35]# vim /etc/profile
  //将配置文件最下面的参数追加参数为:
  export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin
  [root@linuxprobe pcre-8.35]# source /etc/profile
  安装zlib数据压缩函数库(解压与编译过程已省略):
  [root@linuxprobe pcre-8.35]# cd /usr/local/src
  [root@linuxprobe src]# mkdir /usr/local/zlib
  [root@linuxprobe src]# tar xzvf zlib-1.2.8.tar.gz
  [root@linuxprobe src]# cd zlib-1.2.8
  [root@linuxprobe zlib-1.2.8]# ./configure --prefix=/usr/local/zlib
  [root@linuxprobe zlib-1.2.8]# make
  [root@linuxprobe zlib-1.2.8]# make install
  创建用于执行nginx服务的用户:
  [root@linuxprobe zlib-1.2.8]# cd ..
  [root@linuxprobe src]# useradd www -s /sbin/nologin
  安装nginx服务程序(openssl,zlib,pcre要写成源码解压路径!!!):
  [root@linuxprobe src]# tar xzvf nginx-1.6.0.tar.gz
  [root@linuxprobe src]# cd nginx-1.6.0/
  [root@linuxprobe nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35
  [root@linuxprobe nginx-1.6.0]# make
  [root@linuxprobe nginx-1.6.0]# make install
  创建nginx程序脚本(将下面的参数直接复制进去即可):
  [root@linuxprobe nginx-1.6.0]# vim /etc/rc.d/init.d/nginx
  #!/bin/bash
  # nginx - this script starts and stops the nginx daemon
  # chkconfig: - 85 15
  # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
  # proxy and IMAP/POP3 proxy server
  # processname: nginx
  # config: /etc/nginx/nginx.conf
  # config: /usr/local/nginx/conf/nginx.conf
  # pidfile: /usr/local/nginx/logs/nginx.pid
  # Source function library.
  . /etc/rc.d/init.d/functions
  # Source networking configuration.
  . /etc/sysconfig/network
  # Check that networking is up.
  [ "$NETWORKING" = "no" ] && exit 0
  nginx="/usr/local/nginx/sbin/nginx"
  prog=$(basename $nginx)
  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
  [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  lockfile=/var/lock/subsys/nginx
  make_dirs() {
  # make required directories
  user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -z "`grep $user /etc/passwd`" ]; then
   useradd -M -s /bin/nologin $user
   fi
  options=`$nginx -V 2>&1 | grep 'configure arguments:'`
  for opt in $options; do
   if [ `echo $opt | grep '.*-temp-path'` ]; then
   value=`echo $opt | cut -d "=" -f 2`
   if [ ! -d "$value" ]; then
   # echo "creating" $value
   mkdir -p $value && chown -R $user $value
   fi
   fi
  done
  }
  start() {
  [ -x $nginx ] || exit 5
  [ -f $NGINX_CONF_FILE ] || exit 6
  make_dirs
  echo -n $"Starting $prog: "
  daemon $nginx -c $NGINX_CONF_FILE
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
  }
  stop() {
  echo -n $"Stopping $prog: "
  killproc $prog -QUIT
  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
  return $retval
  }
  restart() {
  #configtest || return $?
  stop
  sleep 1
  start
  }
  reload() {
  #configtest || return $?
  echo -n $"Reloading $prog: "
  killproc $nginx -HUP
  RETVAL=$?
  echo
  }
  force_reload() {
  restart
  }
  configtest() {
  $nginx -t -c $NGINX_CONF_FILE
  }
  rh_status() {
  status $prog
  }
  rh_status_q() {
  rh_status >/dev/null 2>&1
  }
  case "$1" in
  start)
   rh_status_q && exit 0
   $1
   ;;
  stop)
   rh_status_q || exit 0
   $1
   ;;
  restart|configtest)
  $1
  ;;
  reload)
   rh_status_q || exit 7
   $1
   ;;
  force-reload)
   force_reload
   ;;
  status)
   rh_status
   ;;
  condrestart|try-restart)
   rh_status_q || exit 0
   ;;
  *)
  echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  exit 2
  esac
  [root@linuxprobe nginx-1.6.0]# chmod 755 /etc/rc.d/init.d/nginx
  重启nginx服务程序并添加到开机启动项:
  [root@linuxprobe nginx-1.6.0]# /etc/rc.d/init.d/nginx restart
  Restarting nginx (via systemctl): [ OK ]
  [root@linuxprobe nginx-1.6.0]# chkconfig nginx on
  此时可以通过访问IP来判断nginx服务是否顺利运行:
  更多内容可以查看http://www.linuxprobe.com/chapter-20.html#2022_Nginx 进行学习

nginx 虚拟主机 怎么访问

  这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设:
  IP地址: 202.55.1.100
  域名1 example1.com 放在 /www/example1
  域名2 example2.com 放在 /www/example2
  配置 nginx virtual hosting 的基本思路和步骤如下:
  把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/
  给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /etc/nginx/vhosts/
  然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)
  重启 nginx
  具体过程
  下面是具体的配置过程:
  1、在 /etc/nginx 下创建 vhosts 目录
  mkdir /etc/nginx/vhosts
  2、在 /etc/nginx/vhosts/ 里创建一个名字为 example1.com.conf 的文件,把以下内容拷进去
  server {
  listen 80;
  server_name example1.com www. example1.com;
  access_log /www/access_ example1.log main;
  location / {
  root /www/example1.com;
  index index.php index.html index.htm;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  root /usr/share/nginx/html;
  }
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /www/example1.com/$fastcgi_script_name;
  include fastcgi_params;
  }
  location ~ /\.ht {
  deny all;
  }
  }
  3、在 /etc/nginx/vhosts/ 里创建一个名字为 example2.com.conf 的文件,把以下内容拷进去
  server {
  listen 80;
  server_name example2.com www. example2.com;
  access_log /www/access_ example1.log main;
  location / {
  root /www/example2.com;
  index index.php index.html index.htm;
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  root /usr/share/nginx/html;
  }
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /www/example2.com/$fastcgi_script_name;
  include fastcgi_params;
  }
  location ~ /\.ht {
  deny all;
  }
  }
  4、打开 /etc/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来
  user nginx;
  worker_processes 1;
  # main server error log
  error_log /var/log/nginx/error.log ;
  pid /var/run/nginx.pid;
  events {
  worker_connections 1024;
  }
  # main server config
  http {
  include mime.types;
  default_type application/octet-stream;
  log_format main ‘$remote_addr – $remote_user [$time_local] $request ‘
  ‘”$status” $body_bytes_sent “$http_referer” ‘
  ‘”$http_user_agent” “$http_x_forwarded_for”‘;
  sendfile on;
  #tcp_nopush on;
  #keepalive_timeout 0;
  keepalive_timeout 65;
  gzip on;
  server {
  listen 80;
  server_name _;
  access_log /var/log/nginx/access.log main;
  server_name_in_redirect off;
  location / {
  root /usr/share/nginx/html;
  index index.html;
  }
  }
  # 包含所有的虚拟主机的配置文件
  include /usr/local/etc/nginx/vhosts/*;
  }
  5、重启 Nginx
  /etc/init.d/nginx restart

nginx虚拟主机

nginx虚拟主机

  Nginx首先决定一个过来的请求由哪一个server来处理。
  就是:我们打开HttpWatch看到的那个HOST值。
  server {
   listen 80;
   server_name nginx.org www.nginx.org;
   ...
   }
  server {
   listen 80;
   server_name nginx.net www.nginx.net;
   ...
   }
  server {
   listen 80;
   server_name nginx.com www.nginx.com;
   ...
   }
  这样的话我们就可以配置三个域名。即同一个IP绑定三个域名。如果发现有一个域名均不匹配的话就定义出来一个默认的域名
  server {
   listen 80 default_server;
   server_name nginx.net www.nginx.net;
   ...
   }
  对于这种域名我们可以这样来处理
  server {
   listen 80 default_server;
   server_name www.nginx.net; //这个值你得填写一个
   return 444;
   }
  基于域名与IP混用的虚拟主机
  server {
   listen 192.168.1.1:80;
   server_name nginx.org www.nginx.org;
   ...
   }
  server {
   listen 192.168.1.1:80;
   server_name nginx.net www.nginx.net;
   ...
   }
  server {
   listen 192.168.1.2:80;
   server_name nginx.com www.nginx.com;
   ...
   }
  至此配置完成了有关虚拟机的配置工作!
  示例:
  Server {
   Listen 80;
   Server_name nginx.org www.nginx.org;
   Root /data/www; //这个有点相当于resin里面的root目录
  Location / {
   Index index.html index.php;
  }
  Location ~*\.(gif|jpg|png)$ {
   Expires 30d;
  }
  Location ~\.php$ {
   fastcgi_pass localhost:9000;
   fastcgi_param SCRIPT_FILENAME
  $document_root$fastcgi_script_name;
  include fastcgi_params;
  }
  }
  其中的location为”/” 表示的是它可以匹配任何请求的。
  哦!原来location是用来检验URI的!
  心得与笔记:
   我们的server是配置HOST的即主机。
   Location是配置URI的。
  比如:http://www.sina.cn/blog/index.php 那这里面的HOST就是www.sina.cn
  URI就是我们的/blog/index.php值了。
  一个“/logo.gif”请求会先和字符location“/”匹配,然后再和正则表达式“\.(gif|jpg|png)$”匹配, 因此,它是被字符location处理的。指令“root /data/www”会使该请求指向一个文件 “/data/www/logo.gif”,之后这个文件就会发送到客户端。
  哦原来root的作用其实与resin里面的document-root是一个概念的!
  一个 “/index.php”请求同样先被字符location “/” 匹配,然后才被正则表达式“\.(php)$”匹配。 所以, 它是被字符location所处理的,并且这请求是通过一个监听在localhost:9000的FastCGI server被处理的. “fastcgi_param” 指令设置FastCGI的参数SCRIPT_FILENAME设置为“/data/www/index.php”, FastCGI server 执行这个文件. $document_root 变量的值等于 “root” 指令,$fastcgi_script_name 变量等于 URI 请求的值, 也就是 “/index.php”.
  笔记:nginx是让客户端程序找到文件的目录位置。具体如何处理这个得让后端来处理的
  一个 “/about.html”请求只被字符location“/”匹配, 所以,它被这个location处理。 使用“root /data/www” 指令的时候,该请求会被转到 “/data/www/about.html”, 并且文件会被发送到客户端。
  明白了!
  笔记:location是得讲个先后顺序才行的。即先由 location / 处理让客户端找到所需要的文件。然后再往下找看看是否还有匹配的location项如果像php文件就会有了!
  丢给了一个FAST-CGI处理程序
  总结:
  心得与笔记:
   我们的server是配置HOST的即主机。多个域名就定义多个虚拟主机即可
   Location是配置URI的。
  比如:http://www.sina.cn/blog/index.php 那这里面的HOST就是www.sina.cn
  URI就是我们的/blog/index.php值了。
  Location是多方匹配的。示例:
  Location / {
   Index index.html index.php;
  }
  Location ~*\.(gif|jpg|png)$ {
   Expires 30d;
  }
  如果我请求一个abc.gif的话是先由第一个UIR定位找到图片位置再由第二个URI处理得到过期时间。
  当然在location里面有以下几个选项。
  1、last 基本上用这个。表示已完成了rewrite不再匹配后面的规则了
  2、break 中止rewrite不再继续匹配
  3、redirect 返回临时重定向的HTTP状态302
  4、permanent 返回永久重定向的HTTP状态301
  注意:原有的URL支持正则,重写的URL不支持正则
  Location / {
   Index index.html index.php;
   Break;
  }
  则后面的过期限制就不生效
  手工测试一下:只处理静态文件的情况
  站点目录:
  虚拟主机1:目录放在D:\myweb\proj3 下面
  虚拟主机2:目录放在D:\myweb\proj4 下面
  server {
   listen 80;
   server_name www.aaa.com;
   root D:\myweb\proj3;
   location / {
   index index.html index.htm;
   }
   location ~*\.(gif|jpg|png)$ {
   expires 30d;
   }
   }
   server {
   listen 80;
   server_name www.bbb.com;
   root D:\myweb\proj4;
   location / {
   index index.html index.htm;
   }
   location ~*\.(gif|jpg|png)$ {
   expires 30d;
   }
  }
  OK!配置了两个虚拟主机了。到时只要域名一过来就可以解析。

nginx怎么配置到虚拟主机中

  配置虚拟主机可以添加一个server,并配置其server_name配置好后,保存配置文件,并通过nginx -s reload命令重新加载配置文件

版权声明:本文由互联网用户自发贡献,仅代表作者观点。若文章违规或侵权,请 (举报反馈) ,核实后立即删除。