安裝就忽略了,用各家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.d
、sites-enable
、sites-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
待寫...