開始前務必先理解server和web server是什麼~
在終端機輸入nginx
開啟Nginx,關閉輸入niginx -s stop
。
如果遇到權限問題導致開不了,可以去修改檔案權限。
ex: 修改 access.log 和 error.log權限,讓當前使用者可寫入(write)
修改後應該可正常開($ nginx
)/關($ nginx -s stop
)nginx
config設定檔在哪
不同作業系統和用不同方式安裝Nginx,config檔可能會在不同位置。
那要怎麼知道我的是在哪呢?
可透過試跑config指令$ nginx -t
得到路徑,順便檢查config是否有誤。
編輯nginx.conf,讓設置如下。
然後在/var/tmp/www/
和/var/tmp/images/
下分別放入index.html
和圖片。
events {}
http {
server {
listen 80;
location / {
root /var/tmp/www;
}
location /images/ {
root /var/tmp/images;
}
}
}
完成上面設置後,當你連到本機的port:80(localhost:80)時,Nginx會回傳根目錄下的index.html。
而root /var/tmp/www
就是設定根目錄是哪個資料夾,可以自己設定不同位置試試看。
第二段同理,是定義連線到localhost:80/images/
時是對應到哪個資料夾。event{}
一定要加,不然會跑錯。
127.0.0.1
或localhost
應該會得到index.html
的結果。127.0.0.1/images/<圖片名>
或localhost/images/<圖片名>
應該會看到圖片。在/var/tmp/up1
下放入另一個index.html
,內容要跟上一個不同,方便區別。
events {}
http {
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
location ~ \.(gif|jpg|png)$ {
root /var/tmp/images;
}
}
server {
listen 8080;
root /var/tmp/up1;
location / {
}
}
}
同時讓nginx跑兩個私服器,一個本體、一個代理。
新開一個server{}
,路徑下放index.html
用proxy_pass
把原本進入localhost:80/
的請求導到proxy server(localhost:8080
)
127.0.0.1
或localhost
應該會得到第二個私服器路徑下index的結果。預設的Nginx只能跑html,所以如果你的index是php檔,必須做以下設置。
邏輯大概是讓nginx讀到php檔時,把檔案都給php底下一個叫php-fpm的模組顯示,所以電腦上也必須安裝php。
conf設置如下:
events {}
http {
server {
listen 80;
root /var/tmp/www; #set up root directory
index index.php; #set up what file to be the index file
location ~ \.php$ {
root /var/tmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
}
Any files end with .php
will be passed to port 127.0.0.1:9000
, which is the default port of fpm.
上面設置在做的事,是把所有.php結尾的檔案都丟到127.0.0.1:9000
。127.0.0.1:9000
是php-fpm預設執行的port。