安装就忽略了,用各家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
待写...
有疑问加站长微信联系(非本文作者)