Nginx

一、什么是本地域名映射

域名解析的流程,先从本地电脑里面有个host的解析, 如果本地有对应的域名ip的映射,它就会优先用本地的。好比通过浏览器访问 127.0.0.1 的效果localhost跟访问都是一样的。

1、Mac配置本地域名映射

下面这个图就是Mac操作系统里面host文件 关于域名跟ip的映射, 结尾增加一个
192.168.159.137 aabbcc.com 就行,那浏览器访问 aabbcc.com就会映射到 192.168.159.137这个ip

  1. cd /private/etc
  2. sudo vim hosts

2021-05-19-20-45-08-080981.png

2、Window配置本地域名映射

  • 首先找到host文件:C:\Windows\System32\drivers\etc
  • 打开host文件 ```bash

    Copyright (c) 1993-2009 Microsoft Corp.

    This is a sample HOSTS file used by Microsoft TCP/IP for Windows.

    This file contains the mappings of IP addresses to host names. Each

    entry should be kept on an individual line. The IP address should

    be placed in the first column followed by the corresponding host name.

    The IP address and the host name should be separated by at least one

    space.## Additionally, comments (such as these) may be inserted on individual

    lines or following the machine name denoted by a ‘#’ symbol.

    For example:

    102.54.94.97 rhino.acme.com

    source server

    38.25.63.10 x.acme.com

    x client host

localhost name resolution is handled within DNS itself.

127.0.0.1 localhost

::1 localhost

192.168.159.137 aabbccdd.com

  1. - 注意#为注释,去掉后添加新的比如:192.168.159.137 aabbccdd.com
  2. - ping aabbccdd.com 回车,能看到来自输入的ip地址,127.0.0.1 ,就成功了
  3. <a name="s3igC"></a>
  4. ### 二、Nginx目录文件讲解
  5. 安装好Nginx之后,需要进去看一下它里面常见的几个文件夹以及每个常用文件的作用。
  6. - 源码编译安装后,默认目录
  7. ```bash
  8. /usr/local/nginx
  • 目录和配置文件介绍 ```bash conf #所有配置文件目录 nginx.conf #默认的主要的配置文件 nginx.conf.default #默认模板

html # 这是编译安装时Nginx的默认站点目录 50x.html #错误页面 index.html #默认首页

logs # nginx默认的日志路径,包括错误日志及访问日志 error.log #错误日志 nginx.pid #nginx启动后的进程id access.log #nginx访问日志

sbin #nginx命令的目录 nginx #启动命令

  1. - 还有一些常见的Nginx操作命令
  2. ```bash
  3. ./nginx #默认配置文件启动
  4. ./nginx -s reload #重启,加载默认配置文件
  5. ./nginx -c /usr/local/nginx/conf/nginx.conf #启动指定某个配置文件
  6. ./nginx -s stop #停止
  7. #关闭进程,nginx有master process 和worker process,关闭master即可
  8. ps -ef | grep "nginx"
  9. kill -9 PID

二、Nginx核心配置文件剖析

Nginx的配置文件比较多,从全局里面把它划分为全局配置、虚拟主机配置还有路径映射。
下面这个配置文件就是拷贝出来的有配置文件,增加了很多注释。
只要关注没有#号注释的。

  1. # 每个配置项由配置指令和指令参数 2 个部分构成
  2. #user nobody; # 指定Nginx Worker进程运行以及用户组
  3. worker_processes 1; #
  4. #error_log logs/error.log; # 错误日志的存放路径 和错误日志
  5. #error_log logs/error.log notice;
  6. #error_log logs/error.log info;
  7. #pid logs/nginx.pid; # 进程PID存放路径
  8. # 事件模块指令,用来指定Nginx的IO模型,Nginx支持的有select、poll、kqueue、epoll 等。不同的是epoll用在Linux平台上,而kqueue用在BSD系统中,对于Linux系统,epoll工作模式是首选
  9. events {
  10. use epoll;
  11. # 定义Nginx每个进程的最大连接数, 作为服务器来说: worker_connections * worker_processes,
  12. # 作为反向代理来说,最大并发数量应该是worker_connections * worker_processes/2。因为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接
  13. worker_connections 1024;
  14. }
  15. http {
  16. include mime.types;
  17. default_type application/octet-stream;
  18. # 自定义服务日志
  19. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. # '$status $body_bytes_sent "$http_referer" '
  21. # '"$http_user_agent" "$http_x_forwarded_for"';
  22. #access_log logs/access.log main;
  23. # 是否开启高效传输模式 on开启 off关闭
  24. sendfile on;
  25. #减少网络报文段的数量
  26. #tcp_nopush on;
  27. #keepalive_timeout 0;
  28. # 客户端连接保持活动的超时时间,超过这个时间之后,服务器会关闭该连接
  29. keepalive_timeout 65;
  30. #gzip on;
  31. # 虚拟主机的配置,可以配置做个server
  32. server {
  33. listen 80; # 虚拟主机的服务端口
  34. server_name localhost; #用来指定IP地址或域名,多个域名之间用空格分开
  35. #charset koi8-r;
  36. #access_log logs/host.access.log main;
  37. #URL地址匹配
  38. location / {
  39. root html; # 服务默认启动目录
  40. index index.html index.htm; #默认访问文件,按照顺序找
  41. }
  42. #error_page 404 /404.html; #错误状态码的显示页面
  43. # redirect server error pages to the static page /50x.html
  44. # 根据后端返回的错误状态码,跳转页面
  45. error_page 500 502 503 504 /50x.html;
  46. location = /50x.html {
  47. root html;
  48. }
  49. }
  50. # 配置多个server案例
  51. #server {
  52. # listen 8000;
  53. # listen somename:8080;
  54. # server_name somename alias another.alias;
  55. # location / {
  56. # root html;
  57. # index index.html index.htm;
  58. # }
  59. #}
  60. # 配置多个server案例
  61. #server {
  62. # listen 443 ssl;
  63. # server_name localhost;
  64. # ssl_certificate cert.pem;
  65. # ssl_certificate_key cert.key;
  66. # ssl_session_cache shared:SSL:1m;
  67. # ssl_session_timeout 5m;
  68. # ssl_ciphers HIGH:!aNULL:!MD5;
  69. # ssl_prefer_server_ciphers on;
  70. # location / {
  71. # root html;
  72. # index index.html index.htm;
  73. # }
  74. #}
  75. }

一个HTTP节点里面,可以配置很多个server,每个server就是一个虚拟主机,可以配置单独的一个域名映射上去。

  1. server {
  2. listen 80; #监听的端口
  3. server_name aabbcc.com; #域名
  4. location / {
  5. root /usr/local/nginx/html;
  6. index xdclass.html;
  7. }
  8. }
  9. server {
  10. listen 80;
  11. server_name aabbccdd.com;
  12. location / {
  13. root html;
  14. index xdclass.html index.htm;
  15. }
  16. }