Nginx安装、多域名访问
nginx
web服务 apache iis
django web框架
lvs 负载均衡 章文嵩博士
vue 尤雨溪
Tengine
F5 硬件负载
A10
安装
``` wget http://nginx.org/download/nginx-1.16.1.tar.gz tar xf nginx-1.16.1.tar.gz cd nginx-1.16.1 yum install gcc zlib2-devel pcre-devel openssl-devel ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module make && make install ```
目录结构
``` [root@localhost nginx]#ls conf html logs sbin conf 配置文件 html 存放静态文件 index.html 是默认的欢迎页面 logs 日志目录 sbin 二进制文件 启动以后会生成一个主进程,根据配置文件的选项来生成子进程(工作进程),主进程不负责处理用户的请求,用来转发用户的请求,真正负责处理用户请求的是子进程 ```
命令格式
``` ./sbin/nginx -h nginx version: nginx/1.16.1 Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -v : show version and exit 显示版本号 -V : show version and configure options then exit 显示版本+编译时选项 -t : test configuration and exit 测试配置文件 -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /opt/nginx/) -c filename : set configuration file (default: conf/nginx.conf) -g directives : set global directives out of configuration file ```
配置文件
```shell #user nobody; 使用哪个用户来启动子进程 worker_processes 1; #工作进程的个数,配置成cpu的核心数-1或者-2 # cpu亲缘性绑定,让nginx的子进程工作在哪个核心上 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { #use [epoll|select|poll]; worker_connections 102400; # 每一个子进程可以处理的连接数 } 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; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; # 指定静态文件地址 index index.html index.htm; # 指定默认的index页面 } # 错误页面 找不到页面 #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # # 错误页面 服务端错误 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # 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; # } #} } ```
404页面
``` error_page 404 /404.html; ```
root和alias的区别
``` location /img { root /data/img; } root /data/img 里面必须有/img
location /img { alias /data/img; } alias /data/img 里面不需要有 /img ```
域名
```
server_name mynginx.com
```
多域名访问
``` server { listen 80; server_name www.taobao.com taobao.com; location / { root /data/taobao; index index.html; } }
server { listen 80; server_name www.jd.com jd.com; location / { root /data/jd; index index.html; } } ```
默认server
``` listen 80 default_server; #放在server中的端口号后面,在使用ip访问时,默认访问的server ```