1. 程式人生 > >NGINX配置多域名

NGINX配置多域名

方法一:多個.conf方法(優點是靈活,缺點就是站點比較多配置起來麻煩)

這裡以配置2個站點(2個域名)為例,n 個站點可以相應增加調整,假設:

IP地址: 192.168.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, 並把配置檔案放到 /usr/local/nginx/vhosts/
然後在 /usr/local/nginx/nginx.conf 裡面加一句 include 把步驟2建立的配置檔案全部包含進來(用 * 號)
重啟 nginx

1、開啟 /usr/local/nginx/nginix.conf 檔案,在相應位置加入 include 把以上2個檔案包含進來

user  www www;

worker_processes  1;

# main server error log

error_log      /usr/local/nginx/log/nginx/error.log ;

pid     /usr/local/nginx/nginx.pid;

events {

worker_connections  51200;

}

# 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      /usr/local/nginx/log/nginx/access.log main;

server_name_in_redirect  off;

location / {

root  /usr/share/nginx/html;

index index.html;

}

}

# 包含所有的虛擬主機的配置檔案

include /usr/local/nginx/vhosts/*;

}

2、在 /usr/local/nginx 下建立 vhosts 目錄

mkdir /usr/local/nginx/vhosts

3、在 /usr/local/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、在 /usr/local/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;
        }
}

5、重啟 Nginx

/etc/init.d/nginx restart
方法二:動態目錄方法(優點是方便,每個域名對應一個資料夾,缺點是不靈活)

這個簡單的方法比起為每一個域名建立一個 vhost.conf 配置檔案來講,只需要在現有的配置檔案中增加如下內容:

# Replace this port with the right one for your requirements
# 根據你的需求改變此埠
listen       80;  #could also be 1.2.3.4:80 也可以是1.2.3.4:80的形式
# Multiple hostnames seperated by spaces.  Replace these as well.
# 多個主機名可以用空格隔開,當然這個資訊也是需要按照你的需求而改變的。
server_name  star.yourdomain.com *.yourdomain.com http://www.*.yourdomain.com/;
#Alternately: _ *
#或者可以使用:_ * (具體內容參見本維基其他頁面)
root /PATH/TO/WEBROOT/$host;
error_page  404              http://yourdomain.com/errors/404.html;
access_log  logs/star.yourdomain.com.access.log;
location / {
root   /PATH/TO/WEBROOT/$host/;
index  index.php;
}

# serve static files directly

# 直接支援靜態檔案 (從配置上看來不是直接支援啊)
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log        off;
expires           30d;
}
location ~ .php$ {
# By all means use a different server for the fcgi processes if you need to
# 如果需要,你可以為不同的FCGI程序設定不同的服務資訊
fastcgi_pass   127.0.0.1:YOURFCGIPORTHERE;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /PATH/TO/WEBROOT/$host/$fastcgi_script_name;
fastcgi_param  QUERY_STRING     $query_string;
fastcgi_param  REQUEST_METHOD   $request_method;
fastcgi_param  CONTENT_TYPE     $content_type;
fastcgi_param  CONTENT_LENGTH   $content_length;
fastcgi_intercept_errors on;
}
location ~ /.ht {
deny  all;
}

最後附另外一個二級域名匹配的方法

繫結域名
server_name *.abcd.com;
獲取主機名
if ( $host ~* (.*).(.*).(.*))
{
set $domain $1;
}
定義目錄
root html/abc/$domain/;
location /
{
root html/abcd/$domain;
index index.html index.php;

相關推薦

Nginx配置域名代理

目的 當我們有多個站點需要對外網開放,每個站點的域名都不一樣,然而我們只有一個外網ip。這種情況下,我們就可以使用一個Nginx來配置多域名代理。這種代理方式可以解決,在同一個埠上針對不同域名代理不同的站點。這樣對外看起來就像是有多臺機器同時對外開發一樣。 操作步驟 進入nginx安裝目錄下的site

Nginx配置域名訪問設定

就是在同一臺伺服器配置多個域名訪問不同的專案,apache的話直接在vhosts.conf檔案裡面新增一個解析就成,但是nginx的話不單單新增一個vhosts解析,並且還要在conf配置檔案裡面新增上一段配置才行。 location /TestAdmin/ { index index.php; tr

NGINX配置域名

方法一:多個.conf方法(優點是靈活,缺點就是站點比較多配置起來麻煩) 這裡以配置2個站點(2個域名)為例,n 個站點可以相應增加調整,假設: IP地址: 192.168.1.100 域名1 example1.com 放在 /www/example1 域名2 example2.com 放在 /ww

nginx 配置域名 及 tomcat 負載均衡 二

上回建立了 test.tomcat.com —— nginx —— 8080 8081 缺點在於 1 nginx負載均衡部署的 127.0.0.1:8080 和 127.0.0.1:8081 訪問各自的webapp目錄,給war包的部署帶來麻煩,需要部署兩臺tomcat 2

一個ip對應域名個ssl證書配置-Nginx實現域名證書HTTPS

引用處: 一個ip對應多個域名多個ssl證書配置-Nginx實現多域名證書HTTPS Nginx配置多個HTTPS域名的方法 第一步:一臺伺服器,兩個或者多個域名對映。首先購買https,獲取到CA證書,兩個域名就得到兩套或多套證書 第二步:現在就是Nginx和OpenSSL的安裝與

windows上 nginx 配置代理服務,配置域名,以及最簡單實現跨域配置

Nginx,不用多說啦,大家都熟悉的不能再熟悉了,它是一款輕量級的高效能Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,最近在本地研究將nginx和resin配合使用,使服務效能達到最高,在配置過程中主要涉及到單域名配置代理服務,以及配

玩轉 docker 入門(4) docker 通過nginx實現反向代理 配置域名以及埠號

一、前言        這段時間一直在研究docker的部署及相關開發環境、生產環境的搭建。但最終技術的學習就是用來實際使用的,所以就想將單位中的機房逐步從單機安裝環境過渡到通過docker部署多個開發環境(生產環境)。二、需求        單位機房的IP有限,我們都是通過

同一伺服器下配置域名,去掉Tomcat埠號,Nginx反向代理做轉發

1. 開啟nginx,資源管理器檢視開啟是否成功,會有兩個nginx.exe程序,瀏覽器輸入127.0.0.1可以訪問到nginx歡迎介面。 2. 在nginx配置檔案nginx.conf中配置多個虛擬主機,即server,用於存放不同的域名(server_name),虛擬

Linux+Nginx+Tomcat 域名應用在同一伺服器的配置

Linux+Nginx+Tomcat 多域名,多應用在同一伺服器的整合配置 實現的效果和達到的目的為: 1、有兩個域名www.aaa.com www.bbb.com 分別對應兩個兩個不同的網站,但是公用同一個Nginx和Tomcat伺服器; 2、所有的JSP等動態內容轉發

nginx伺服器域名配置

轉:http://www.2cto.com/os/201411/355366.html Nginx強大的正則表示式支援,可以使server_name的配置變得很靈活,如果你要做多使用者部落格,那麼每個使用者擁有自己的二級域名也就很容易實現了。 下面我就來說說ser

Nginx配置個HTTPS域名的方法

參考URL:https://www.jb51.net/article/117697.htm?12345678910111213141516171819202122232425262728293031323334353637383940...server {listen   

nginx+php域名配置的方法

方法有兩種 一是直接在nginx.conf中增加多個域名的配置,二是每個域名單獨寫一個配置檔案,在nginx.conf中引用,兩者的效果是相同的 1、修改nginx的配置檔案nginx.conf 仿照配置檔案原有的server來寫 server{ listen 80;

Nginx配置二級域名個微信服務應用等

可以解決的問題: 一臺伺服器可以起多個tomcat通過不同的埠,共同監聽80埠對映到不通的域名上。 微信伺服器多個應用,需要多個域名的,可以通過nginx進行轉發,對不通的伺服器進行微信授權。 nginx資料夾(就是nginx.conf所在位置)同級建一

nginx】一臺nginx伺服器域名配置

Nginx強大的正則表示式支援,可以使server_name的配置變得很靈活,如果你要做多使用者部落格,那麼每個使用者擁有自己的二級域名也就很容易實現了。 下面說說server_name的使用吧: s

[nginx] CORS配置域名

ror -m range list origin option and ima acc 如下 server { listen 80; server_name www.your.com; root /data/

nginx 配置個主機

安裝 code -a reload res list onf 內容 efault 我現在想配置 兩個站點,通過域名來區分訪問不同的網站目錄 比如有個域名 baidu.com 第二個域名 google.com,我有兩個網站目錄, /opt/web/baidu;

Ubuntu Nginx 配置站點

自己的 來安 針對 域名 ogg borde regex article 自己 Ubuntu Nginx 配置多站點 nginx ubuntu JellyBool 2017年11月04日發布 贊 | 0收藏 | 2 291

nginx配置端口轉發

nginx[root@iscsid conf]# cat nginx.confuser nginx nginx;worker_processes 8; error_log /opt/nginx/logs/nginx_error.log crit;pid /opt/nginx/logs/ng

linux nginx配置個網站

vhost host 編輯 dir OS nginx 文件夾 CA nginx配置 1.把網站配置在hom目錄下,需要建立wwwroot目錄 1.在nginx.conf 增加inlcude代碼,然後創建一個vhost,最後配置個xxx.com.conf //編輯n

iis 配置域名,https

導入 需要 通過 多說 輸入 地址 多域名 比較 tag 當一個https的請求到達IIS服務器時,https請求為加密狀態,需要拿到相應的服務器證書解密請求。由於每個站點對應的證書不同,服務器需要通過請求中不同的主機頭來判斷需要用哪個證書解密,然而主機頭作為請求的一部分也