Nginx基本配置入門

安裝就忽略了,用各家install命令安裝便可。

1.目錄文件介紹

nginx其配置文件一般都放在/etc/nginx/目錄之下,執行ls可看到該目錄下的文件:

root@iZuf6go9cde2wi64ieopxxZ:/etc/nginx# ls
conf.d      koi-win        nginx.conf       sites-enabled
fastcgi.conf    mime.types     proxy_params     snippets
fastcgi_params  modules-available  scgi_params      uwsgi_params
koi-utf     modules-enabled    sites-available  win-utf

我們日常配置所需的是:nginx.conf文件和conf.dsites-enablesites-available這三個文件夾
nginx.conf是最重要的文件,我們無需經常修改,其內容中的include語句將決定是否導入以上三個文件夾(或者其他文件夾)下的配置文件。
例如:

root@iZuf6go9cde2wi64ieopxxZ:/etc/nginx# cat nginx.conf 
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;
...等等,省略下面內容

通過include /etc/nginx/modules-enabled/*.conf;這條語句可以看到,啓用的是/etc/nginx/modules-enabled/目錄下的文件拓展名爲conf的配置文件。
如上所提到的幾個文件夾,其對應的語句爲:

include /etc/nginx/conf.d/*
include /etc/nginx/sites-enabled/*

sites-available(或modules-available)(不是必須,但這樣比較合理)文件夾存放所有可能使用的配置文件,但不導入啓用,如果想要啓用配置,應該用ln命令將所需要的配置文件硬鏈接到sites-enabled(或modules-enabled)文件夾中。

2.配置文件

一個最基本的配置文件有如下內容構成:

server {
    listen 80;
    server_name  www.miracle.beer miracle.beer
    location / {
       ...
    }
}

listen 80表示監聽的80端口,爲http默認端口;
如果使用https將需要監聽443並且配置ssl證書;
server_name是該網站的主機名,如果在個人電腦上的話可以直接訪問,如果部署在雲服務器上則需要配置域名解析。
location則是訪問網站的入口,訪問規則由此決定。

以下是我常用的nginx配置文件:

  • golang:
    listen 80;
    listen 443 ssl;
    server_name  www.miracle.beer miracle.beer
    ssl on;
    ssl_certificate /etc/ssl/private/1542460206799.crt;
    ssl_certificate_key /etc/ssl/private/1542460206799.key;
    charset utf-8;
    access_log  /home/a.com.access.log;

    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;

        root "/path/to/app_a/static";
        try_files $uri @backend;
    }

    location / {
        try_files /_not_exists_ @backend;
    }

    location @backend {
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host            $http_host;

        proxy_pass http://127.0.0.1:8080;
    }
}
  • python
server {
        listen       443 ssl;
        server_name  python.miracle.beer;
    ssl on;
        ssl_certificate /etc/ssl/private/1542460206799.crt;
        ssl_certificate_key /etc/ssl/private/1542460206799.key;

        location / {
            include uwsgi_params;
            uwsgi_pass  127.0.0.1:5000;
        uwsgi_param UWSGI_CHDIR  /var/www/flask/main;
            uwsgi_param UWSGI_SCRIPT hello:app;
            }
        }
  • php
    待寫...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章