在 Windows 安裝 Nginx 伺服器
大约 3 分鐘
在 Windows 安裝 Nginx 伺服器
前言
有時候為了測試小網站又懶得弄個 Linux 環境,
那麼直接在 Windows 環境也是種選擇,
不用安裝只要下載就可以馬上使用惹。
下載網頁伺服器 Nginx
官網下載
選擇 nginx/Windows-{version}
版本
解壓縮檔案
解壓縮到任意目錄
本次教學以 D 槽為解壓縮目的
執行網頁伺服器 Nginx
到 D:\nginx-{version} 內會看到 nginx.exe
不用安裝就可以直接執行
開啟瀏覽器輸入 http://127.0.0.1/ 看到歡迎畫面代表成功
設定網頁伺服器 Nginx
設定備份
設定檔是 nginx.conf
位置會在 D:\nginx-1.27.2\conf\nginx.conf
設定之前建議備份該檔案,改壞了有得救。
參考設定檔
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events
{
worker_connections 1024;
}
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"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 測試主頁
server
{
# 指定處理請求的通訊埠
listen 80;
# 指定處理請求的主機名稱
server_name localhost;
# 指定專案路徑
root html;
# 在 Content-Type 標頭中自動加上 charset 的設定值
charset utf-8;
# log 路徑與名稱
access_log logs/test.access.log;
error_log logs/test.error.log;
# 預設首頁檔名
location /
{
index index.html index.htm;
}
# 將伺服器錯誤頁面重定向到指定頁面
error_page 403 404 /40x.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root html;
}
}
# 一般 PHP 檔案
server
{
# 指定處理請求的通訊埠
listen 80;
# 指定處理請求的主機名稱
server_name 127.0.0.50;
# 指定專案路徑與預設首頁檔名
root D:/test;
index index.php
# 在 Content-Type 標頭中自動加上 charset 的設定值
charset utf-8;
# log 路徑與名稱
access_log logs/php.access.log;
error_log logs/php.error.log;
# 通過 php-cgi 監聽的 port 來處理 PHP 檔案
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# Laravel 9 參考設定
server
{
# 指定處理請求的通訊埠
listen 80;
# 指定處理請求的主機名稱
server_name 127.0.0.2;
# 將 root 視為一個入口,指到 Laravel 專案資料夾內的 public 資料夾
root D:/apply_front/public;
index index.php;
# 在 Content-Type 標頭中自動加上 charset 的設定值
charset utf-8;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
# 將所有的請求都交給 Laravel 的路由去處理,如 404 的頁面都是交由 Laravel 處理
location /
{
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
# 將伺服器錯誤頁面重定向到指定頁面
error_page 404 /index.php;
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).*
{
deny all;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}