Configurazione di nginx configura / Configurazione locale


0

Cerco di configurare la configurazione personalizzata di nginx per il sito. Configurazione locale. Io uso la macchina virtuale vmware Mac OS X EL capitan 10.11. e usa questo lezione

È il mio nginx.conf

enter code here

#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 {
  root /Users/myfolder/Documents/folder/project-folder/;
  index index.php index.html index.htm;
  server_name project.dev;
  index index.php;
  client_max_body_size 2000M;
  location / {
    try_files $uri $uri/ /index.php?$args;
  }
  # Add trailing slash to */wp-admin requests.
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;
  # Directives to send expires headers and turn off 404 error logging.
  location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
      access_log off; log_not_found off; expires max;
  }
  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_buffer_size 128k;
      fastcgi_buffers 4 256k;
      fastcgi_busy_buffers_size 256k;
      fastcgi_index index.php;
      include fastcgi.conf;
  }
 }

configurazione di project.dev:

enter code here
server {
root /Users/myfolder/Documents/folder/project/;
index index.php index.html index.htm;
server_name project.dev;
index index.php;
client_max_body_size 2000M;
location / {
  try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    access_log off; log_not_found off; expires max;
}
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_index index.php;
    include fastcgi.conf;
 }
}   

ospite:

 ##
 # Host Database
 #
 # localhost is used to configure the loopback interface
 # when the system is booting.  Do not change this entry.
 ##
 127.0.0.1    project.dev
 255.255.255.255    broadcasthost
 ::1    

Provo a configurare http://project.dev - la sua non funziona. Questo sito non può essere raggiunto. Cosa mi sono perso?

Risposte:


2

Il tuo nginx.conf e il tuo progetto.dev sono in qualche modo protetti. E secondo me i padroni di casa sono "non standard".

Propongo un metodo diverso: utilizzo di una configurazione di host virtuali senza sito standard.

Presumo che nginx sia già installato con brew. Invece di usare il sudo brew services nginx start/stop comando (che crea / carica e scarica / rimuove un daemon di avvio tutto il tempo) Io uso un daemon di lancio permanente qui.

  • Fermati nginx!
  • Copia il daemon di avvio di nginx su / Library / LaunchDaemons e modifica le autorizzazioni:

    sudo cp -v /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/
    sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
    
  • Crea le seguenti cartelle (se non esistono già)

    mkdir -p /usr/local/etc/nginx/logs
    mkdir -p /usr/local/etc/nginx/sites-available
    mkdir -p /usr/local/etc/nginx/sites-enabled
    
  • Sostituisci il contenuto dell'attuale nginx.conf con

    worker_processes  1;
    
    error_log  /usr/local/etc/nginx/logs/error.log debug;
    
    events {
        worker_connections  256;
    }
    
    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  /usr/local/etc/nginx/logs/access.log  main;
    
        sendfile            on;
    
        keepalive_timeout   65;
    
        index index.html index.php;
    
        include /usr/local/etc/nginx/sites-enabled/*; 
    }
    
  • Crea la tua cartella di progetto:

    mkdir -p ~/Development/project-folder/project.dev
    
  • Aggiungi almeno un semplice index.html in ~ / Development / project-folder / project.dev (per poter testare nginx)
  • Crea un file project.dev in / usr / local / etc / nginx / sites-available / con il seguente contenuto:

    server {
      listen                *:80;
      server_name           project.dev;
    
      location / {
        root  /Users/your_username/Development/project-folder/project.dev;
        try_files  $uri  $uri/  /index.php?$args;
        index  index.html index.htm index.php;
      }
    
      location ~ \.php$ {
        root  /Users/your_username/Development/project-folder/project.dev;
        try_files  $uri  $uri/  /index.php?$args;
        index  index.html index.htm index.php;
    
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
    
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_intercept_errors on;
        include fastcgi_params;
      }
    
    }
    

    Ora collega project.dev a sites.enabled:

    ln -s /usr/local/etc/nginx/sites-available/project.dev /usr/local/etc/nginx/sites-enabled
    
  • Modifica il tuo file hosts con sudo nano /etc/hosts a:

    127.0.0.1   localhost
    127.0.0.1   project.dev
    255.255.255.255 broadcasthost
    ::1             localhost 
    
  • Prova la configurazione di nginx:

    sudo nginx -t
    
  • Inizia con nginx:

    sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
    
  • Testare il sito Web con:

    curl -IL http://project.dev:80
    
  • Per gestire nginx puoi creare facilmente alcuni utili alias in ~ / .bash_profile come:

    alias nginx.start='sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist'
    alias nginx.stop='sudo launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist'
    alias nginx.restart='nginx.stop && nginx.start'
    

    Dai il .bash_profile modificato con source ~/.bash_profile successivamente.


Dopo aver impostato un sito Web di base, aggiungi tutte le direttive / posizioni aggiuntive necessarie. Controllare i log degli errori per gli errori in seguito!


Per raggiungere il sito Web di OS X VM con un client (ad esempio, l'host di macchine virtuali - il tuo computer fisico), aggiungi una voce per project.dev nel file hosts del client:

127.0.0.1   localhost
ip_address_of_osx-vm    project.dev
255.255.255.255 broadcasthost
::1             localhost 

La configurazione più semplice per la VM è quella di collegare l'interfaccia di rete della VM a una rete a ponte:

VM & gt; Impostazioni & gt; Dispositivi rimovibili & gt; Scheda di rete & gt; Bridged Networking & gt; Ethernet (o Wi-Fi)

Nelle preferenze di rete della VM, configurare un IP nella stessa rete dell'interfaccia di rete dell'host VM. Esempio: se l'interfaccia a ponte è Wi-Fi e l'indirizzo IP del Wi-Fi dell'host VM è 192.168.0.15/255.255.255.0, scegliere un IP univoco nella stessa rete per l'interfaccia di rete di OS X VM (ad esempio 192.168.0.115 /255.255.255.0).

Un file host del sito web (sito Web) dovrebbe apparire così:

127.0.0.1   localhost
192.168.0.115   project.dev
255.255.255.255 broadcasthost
::1             localhost  
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.