nignx多域名多站點的配置,502 Bad Gateway解決方法
本文以ubuntu18.04版本為例,其他Linux系統類似
0、確保已經安裝nginx php php-fpm
我的nginx版本為1.14.0,php版本為7.2
1、先建立兩個放網站的目錄
mkdir /data
mkdir /data/ding1com
mkdir /data/ding2com
2、檢視nginx.conf可知放入位置sites-enabled資料夾內所有檔案都生效
cd /etc/nginx
cp -r sites-enabled sites-enabled.bak #修改前先備份
cd sites-enabled
多域名可在一個檔案內設定,也可以拆分多個檔案。格式如下:修改root行和server_name行即可
server { listen 80; root /data/ding1com; index index.php index.html index.htm index.nginx-debian.html; server_name localhost ding1.com www.ding1.com; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
3、修改hosts對應域名記錄
vim /etc/hosts
127.0.0.1 localhost ding1.com www.ding1.com ding2.com www.ding2.com
4、重啟nginx即可
nginx -t //檢查錯誤
sudo /etc/init.d/nginx restart
注意:按照老版本的寫法,fastcgi_pass 127.0.0.1:9000; 訪問php檔案就會報錯 502 Bad Gateway,改成上面的寫法即可,這個問題困擾了我好幾天。
------------------------------------------------------------------------------------------------------------------------
訪問php檔案,502 Bad Gateway,問題解決記錄
/etc/init.d/php7.2-fpm status #正常
netstat -ntlp #檢視 發現php-fpm不監聽9000埠
cd /etc/php/7.2/fpm 檢視php-fpm.conf
檢視 /etc/php/7.2/fpm/pool.d/www.conf
找到
listen = /run/php/php7.2-fpm.sock
所以要把nginx配置檔案中127.0.0.1:9000 改為 unix:/run/php/php7.2-fpm.sock;
nginx預設網站位置:/usr/share/nginx/html
nginx 錯誤日誌位置:/var/log/nginx/error.log