Ⅰ nginx配置虛擬主機host怎麼不起作用
配置虛擬主機可以添加一個server,並配置其server_name
配置好後,保存配置文件,並通過nginx -s reload命令重新載入配置文件
Ⅱ nginx怎麼配置到虛擬主機中
配置虛擬主機可以添加一個server,並配置其server_name 配置好後,保存配置文件,並通過nginx -s reload命令重新載入配置文件
Ⅲ nginx怎麼配置虛擬主機 域名
一個nginx伺服器只能有一個虛擬主機允許IP訪問 只要在server_name最後面添加一個default,就可以在其他nginx沒有定義的域名下,使用當前server解析(例如,其他server都沒有定義ip地址作為server_name則用IP訪問會被打到default主機上)
Ⅳ 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怎麼配置多個虛擬主機
一、一個tomcat部署多個應用的方法: 在conf/server.xml配置文件中,有這樣的標簽: …… 默認只有一個 你復制一份兒,但host標簽必須在engine標簽之內。 #### Tomcat配置server.xml簡單說明 ########### #這里可設置默認虛擬主機名 #connector是...
Ⅵ 如何設置nginx虛擬主機偽靜態
1、先進入到nginx的配置文件目錄,輸入以下命令:
cd /alidata/server/nginx/conf/rewrite
2、再輸入:ll
3、輸入以下命令:
cd /alidata/server/nginx/conf/vhosts
4、進入到網站配置目錄,打開配置文件,修改好偽靜態調用文件;
5、測試配置的文件是否正確,輸入:
/alidata/server/nginx/sbin/nginx -t
nginx: the configuration file /alidata/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /alidata/server/nginx/conf/nginx.conf test is successful
如果出現以上兩句話就說明配置成功了。
6、下面重啟下nginx
/alidata/server/nginx/sbin/nginx -s reload
7、偽靜態配置完成
Ⅶ linux配置nginx虛擬主機
可以去景安host.zzidc.com網站上查看相關教程
Ⅷ nginx 虛擬主機配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
這里需要配置一下。
Ⅸ 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_mole --user=www --group=www --with-http_stub_status_mole --with-http_ssl_mole --with-http_gzip_static_mole --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 進行學習
Ⅹ lnmp默認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