咱們拿阿里雲的ECS雲服務器CentOS7+來舉例:php
一、修改nginx默認的配置文件:html
以 YUM 安裝的 Nginx 爲例:nginx
1.執行命令 vi /etc/nginx/nginx.conf
編輯 Nginx 的配置文件,將默認的server {...}
配置修改成如下內容:web
server { listen 80 default_server; server_name www.123.com; root /home/web1; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50.xhtml; location = /50x.html { } } server { server_name www.abc.com; root /home/web2; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
2.執行命令 nginx -s reload
重啓 Nginx 服務。服務器
其餘方式也能夠直接看阿里雲教程:https://help.aliyun.com/knowledge_detail/41091.html?spm=5176.11065259.1996646101.searchclickresult.4b2b44e3xqAmBgdom
二、添加自定義的配置文件:網站
遠程鏈接並登陸到 Linux 實例。阿里雲
執行命令 cd /etc/nginx/conf.d
打開 Nginx 服務配置文件目錄。.net
執行命令 vi 您要建立的域名.conf
建立域名規則配置文件,如示例中的 vi www.server110.com.conf
。代理
輸入 i
編輯新建的配置文件:
爲每個域名創建一個單獨的配置文件時輸入如下內容:
server { listen 80; #監聽端口設爲 80。 server_name www.server110.com; #綁定您的域名。 index index.htm index.html index.php; #指定默認文件。 root /home/www/server110.com; #指定網站根目錄。 include location.conf; #當您須要調用其餘配置文件時才粘貼此項,如無須要,請刪除此項。 }
將多個域名規則寫進一個共同的配置文件時輸入如下內容:
server { listen 80; #監聽端口設爲 80。 server_name www.server110.com; #綁定您的域名。 index index.htm index.html index.php; #指定默認文件。 root /home/www/server110.com; #指定網站根目錄。 include location.conf; #當您須要調用其餘配置文件時才粘貼此項,如無須要,請刪除此項。 } server { listen 80; #監聽端口設爲 80。 server_name msn.server111.com; #綁定您的域名。 index index.htm index.html index.php; #指定默認文件。 root /home/www/msn.server110.com; #指定網站根目錄。 include location.conf; #當您須要調用其餘配置文件時才粘貼此項,如無須要,請刪除此項。 }
爲無 WWW 前綴的域名配置規則並加 301 跳轉時輸入如下內容:
server { listen 80; server_name server110.com; rewrite ^/(.*) http://www.server110.com/$1 permanent; }
須要爲域名添加 404 提示時輸入如下內容:
server { listen 80; #監聽端口設爲 80。 server_name www.server110.com; #綁定您的域名。 index index.htm index.html index.php; #指定默認文件。 root /home/www/server110.com; #指定網站根目錄。 include location.conf; #當您須要調用其餘配置文件時才粘貼此項,如無須要,請刪除此項。 error_page 404 /404.html; }
按 Esc 退出編輯並輸入 :wq
保存退出。
執行命令 nginx -t
檢查配置是否有誤,並按照報錯提示修復錯誤。
執行命令 service nginx restart
重啓 Nginx 服務。
執行命令 service nginx reload
從新載入 Nginx 服務。
那麼是否只須要上述操做就能夠了呢,若是是php或者靜態的html,是徹底沒問題的,但咱們的Spring Boot項目可能一個項目一個端口,那在此基礎上還須要修改一下代碼:
upstream xx{ #配置upstream節點,這裏節點名爲「xx」 server 116.255.111.111:8080; } server{ listen 80; server_name www.xxx.xx; #這裏配置nginx須要代理的域名 location / { proxy_pass http://xx; #指定反向代理爲上面配置的那個upstream節點「xx」 proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
個人配置:/etc/nginx/conf.d/domain.conf
upstream resumehubServer{ server localhost:8080; } server { listen 80; #監聽端口設爲 80。 server_name www.resumehub.cn; #綁定您的域名。 index index.htm index.html index.php; #指定默認文件。 root /opt/resume; #指定網站根目錄。 location / { proxy_pass http://resumehubServer; #指定反向代理爲上面配置的那個upstream節點「xx」 proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
之因此在/etc/nginx/conf.d/目錄下的文件均可以域名映射,是由於在/etc/nginx/nginx.conf文件中include了這個目錄下的全部conf文件
上面的upstream指定當前服務器部署的web服務的端口。
參考文檔:http://blog.csdn.net/xianglingchuan/article/details/67684219
http://blog.csdn.net/ajian759447583/article/details/50437933
https://www.cnblogs.com/yinxiang/p/5298960.html