Nginx配置

默认虚拟主机

  1. #修改配置文件
  2. [root@lnmp vhost]# vim /usr/local/nginx/conf/nginx.conf
  3. # 把server那一段删了,加入这一句 include vhost/*.conf;
  4. user nobody nobody;
  5. worker_processes 2;
  6. error_log /usr/local/nginx/logs/nginx_error.log crit;
  7. application/xml;
  8. pid /usr/local/nginx/logs/nginx.pid;
  9. worker_rlimit_nofile 51200;
  10. events
  11. {
  12. use epoll;
  13. worker_connections 6000;
  14. }
  15. http
  16. {
  17. include mime.types;
  18. default_type application/octet-stream;
  19. server_names_hash_bucket_size 3526;
  20. server_names_hash_max_size 4096;
  21. log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
  22. ' $host "$request_uri" $status'
  23. ' "$http_referer" "$http_user_agent"';
  24. sendfile on;
  25. tcp_nopush on;
  26. keepalive_timeout 30;
  27. client_header_timeout 3m;
  28. client_body_timeout 3m;
  29. send_timeout 3m;
  30. connection_pool_size 256;
  31. client_header_buffer_size 1k;
  32. large_client_header_buffers 8 4k;
  33. request_pool_size 4k;
  34. output_buffers 4 32k;
  35. postpone_output 1460;
  36. client_max_body_size 10m;
  37. client_body_buffer_size 256k;
  38. client_body_temp_path /usr/local/nginx/client_body_temp;
  39. proxy_temp_path /usr/local/nginx/proxy_temp;
  40. fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
  41. fastcgi_intercept_errors on;
  42. tcp_nodelay on;
  43. gzip on;
  44. gzip_min_length 1k;
  45. gzip_buffers 4 8k;
  46. gzip_comp_level 5;
  47. gzip_http_version 1.1;
  48. gzip_types text/plain application/x-javascript text/css text/htm
  49. application/xml;
  50. include vhost/*.conf;
  51. }
  52. [root@lnmp nginx-1.17.8]# mkdir /usr/local/nginx/conf/vhost
  53. [root@lnmp nginx-1.17.8]# cd /usr/local/nginx/conf/vhost/
  54. [root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
  55. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  56. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  57. [root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
  58. [root@lnmp vhost]# vim default.conf
  59. server
  60. {
  61. listen 80 default_server;
  62. server_name aaa.com;
  63. index index.html index.htm index.php;
  64. root /data/nginx/default;
  65. }
  66. [root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
  67. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  68. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  69. [root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
  70. #测试
  71. [root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
  72. [root@lnmp vhost]# mkdir -p /data/nginx/default
  73. [root@lnmp vhost]# echo " default server! " > /data/nginx/default/index.html
  74. [root@lnmp vhost]# curl -x127.0.0.1:80 bbb.com
  75. default server!
  76. [root@lnmp vhost]# curl -x127.0.0.1:80 aaa.com
  77. default server!

用户认证

[root@lnmp vhost]# vim test.com.conf
server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;

    location /
    {
    auth_basic "Auth";
    auth_basic_user_file /usr/local/nginx/conf/htpasswd;
    }
[root@lnmp vhost]# yum install -y httpd
[root@lnmp vhost]# htpasswd -c /usr/local/nginx/conf/htpasswd wsw
New password: 
Re-type new password: 
Adding password for user wsw
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# mkdir /data/nginx/test.com
[root@lnmp vhost]# echo "test.com" > /data/nginx/test.com/index.html
#测试
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]#  /usr/local/nginx/sbin/nginx -s reload

在自己电脑修改hosts文件
C:\Windows\System32\drivers\etc

针对目录认证

[root@lnmp vhost]# vim test.com.conf
server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;

    location /admin/
    {
    auth_basic "Auth";
    auth_basic_user_file /usr/local/nginx/conf/htpasswd;
    }
}
[root@lnmp vhost]# mkdir /data/nginx/test.com/admin
[root@lnmp vhost]# echo "asdfadmin" > /data/nginx/test.com/admin/index.html
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

image.png

URL认证

[root@lnmp vhost]# vim test.com.conf
server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;

    location ~ admin.php
    {
    auth_basic "Auth";
    auth_basic_user_file /usr/local/nginx/conf/htpasswd;
    }
}
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/admin.php
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>

域名重定向

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
# 状态码301就是域名重定向
[root@lnmp vhost]# curl -x127.0.0.1:80 test2.com 
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>
[root@lnmp vhost]# curl -x127.0.0.1:80 test2.com -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 06:45:31 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
Location: http://test.com//

nginx访问日志

# nginx 默认格式
[root@lnmp vhost]# grep -A2 log_format /usr/local/nginx/conf/nginx.conf
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';

# combined_realip为日志格式名字,$remote_addr为网站的用户的出口IP;
# $http_x_forwarded_for 为代理服务器的IP,如果使用了代理,则会记录IP
# $time_local为当前时间;$host为主机名;$request_uri为访问的URL地址
# $status为状态码,$http_referer为referer地址,$http_user_agent为user_agent
[root@lnmp vhost]# vim test.com.conf 
server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;
    access_log /tmp/1.log combined_realip;
}
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# curl -x127.0.0.1:80 test.com
test.com
[root@lnmp vhost]# cat /tmp/1.log 
127.0.0.1 - [06/Sep/2021:14:52:04 +0800] test.com "/" 200 "-" "curl/7.29.0"

nginx日志切割

[root@lnmp vhost]# vim /usr/local/sbin/nginx_log_rotate.sh 
#!/bin/bash
##假设nignx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`
[root@lnmp vhost]# crontab -e
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
[root@lnmp ~]# ls /tmp/

[root@lnmp vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20210905
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls 1.log
+ for log in '`ls *.log`'
+ mv 1.log 1.log-20210905
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 130283
[root@lnmp vhost]# ls /tmp/
[root@lnmp vhost]# sh -x /usr/local/sbin/nginx_log_rotate.sh 
++ date -d '-1 day' +%Y%m%d
+ d=20210905
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls 1.log
+ for log in '`ls *.log`'
+ mv 1.log 1.log-20210905
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 130283
[root@lnmp vhost]# ls /tmp/

配置静态文件不记录日志并添加过期时间

[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;
    if ($host != 'test.com' ) {
        rewrite ^/(.*)$ http://test.com/$1 permanent;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 7d;
        access_log off;
    }
    location ~ .*\.(js|css)$
    {
         expires 12h;
    }
    access_log /tmp/1.log combined_realip;
}
[root@lnmp vhost]# echo '111' > /data/nginx/test.com/1.js
[root@lnmp vhost]# echo '222' > /data/nginx/test.com/2.jpg
[root@lnmp vhost]# touch /data/nginx/test.com/1.jss
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# echo > /tmp/1.log
[root@lnmp vhost]# curl -I -x127.0.0.1:80 test.com/1.js
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 07:03:36 GMT
Content-Type: application/javascript
Content-Length: 4
Last-Modified: Mon, 06 Sep 2021 07:02:29 GMT
Connection: keep-alive
ETag: "6135bd05-4"
Expires: Mon, 06 Sep 2021 19:03:36 GMT
Cache-Control: max-age=43200
Accept-Ranges: bytes

[root@lnmp vhost]# curl -I -x127.0.0.1:80 test.com/2.jpg
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 07:03:46 GMT
Content-Type: image/jpeg
Content-Length: 4
Last-Modified: Mon, 06 Sep 2021 07:02:36 GMT
Connection: keep-alive
ETag: "6135bd0c-4"
Expires: Mon, 13 Sep 2021 07:03:46 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytes

[root@lnmp vhost]# curl -I -x127.0.0.1:80 test.com/1.jss
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 07:03:55 GMT
Content-Type: application/octet-stream
Content-Length: 0
Last-Modified: Mon, 06 Sep 2021 07:02:44 GMT
Connection: keep-alive
ETag: "6135bd14-0"
Accept-Ranges: bytes

[root@lnmp vhost]# cat /tmp/1.log

127.0.0.1 - [06/Sep/2021:15:03:36 +0800] test.com "/1.js" 200 "-" "curl/7.29.0"
127.0.0.1 - [06/Sep/2021:15:03:55 +0800] test.com "/1.jss" 200 "-" "curl/7.29.0"

Nginx防盗链

[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;
    if ($host != 'test.com' ) {
        rewrite ^/(.*)$ http://test.com/$1 permanent;
    }
        location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
        {
         expires 7d;
        valid_referers none blocked server_names  *.test.com ;
         if ($invalid_referer) {
         return 403;
         }
         access_log off;
        }
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#重启
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# curl -x127.0.0.1:80 -e "http://aaa.com/1.txt" test.com/2.jpg -I
HTTP/1.1 403 Forbidden
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 07:05:52 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive
[root@lnmp vhost]# curl -x127.0.0.1:80 -e "http://test.com/1.txt" test.com/2.jpg -I
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Mon, 06 Sep 2021 07:06:12 GMT
Content-Type: image/jpeg
Content-Length: 4
Last-Modified: Mon, 06 Sep 2021 07:02:36 GMT
Connection: keep-alive
ETag: "6135bd0c-4"
Expires: Mon, 13 Sep 2021 07:06:12 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytesx`

访问控制

针对目录进行访问控制

[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;
    access_log /tmp/1.log combined_realip;

location /admin/ {
        allow 192.168.200.32;
        allow 127.0.0.1;
        deny all;
}
}
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
#测试

nginx解析PHP

[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/nginx/test.com;
    access_log /tmp/1.log combined_realip;

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/tmp/php-fcgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /data/nginx/test.com$fastcgi_script_name;
    }
}
[root@lnmp vhost]# vim /data/nginx/test.com/3.php 
<?php
phpinfo();
?>
# fastcgi_pass用来指定php-fpm的地址 路径如果错误,则报错502 

#测试
[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/3.php
<?php
phpinfo();
?>

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

image.png

Nginx代理

[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/proxy.conf
server
{
    listen 80;
    server_name ask.apelearn.com;

    location /
    {
        proxy_pass      http://47.104.7.242/;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
[root@lnmp vhost]# curl -x127.0.0.1:80 ask.apelearn.com/robots.txt
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# curl -x127.0.0.1:80 ask.apelearn.com/robots.txt
#
# robots.txt for MiWen
#

User-agent: *

Disallow: /?/admin/
Disallow: /?/people/
Disallow: /?/question/
Disallow: /account/
Disallow: /app/
Disallow: /cache/
Disallow: /install/
Disallow: /models/
Disallow: /crond/run/
Disallow: /search/
Disallow: /static/
Disallow: /setting/
Disallow: /system/
Disallow: /tmp/
Disallow: /themes/
Disallow: /uploads/
Disallow: /url-*
Disallow: /views/
Disallow: /*/ajax/

负载均衡

# 安装dig命令
[root@lnmp vhost]# yum install -y bind-utils
[root@lnmp vhost]# dig www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1040
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          99      IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       55      IN      A       39.156.66.18
www.a.shifen.com.       55      IN      A       39.156.66.14

;; Query time: 61 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 一 9月 06 15:40:06 CST 2021
;; MSG SIZE  rcvd: 90
[root@lnmp vhost]# vim /usr/local/nginx/conf/vhost/load.conf 
upstream baidu
{
    ip_hash;
    server 220.181.38.149:80;
    server 220.181.38.150:80;
}
server
{
    listen 80;
    server_name www.baidu.com;
    location /
    {
        proxy_pass      http://baidu;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
[root@lnmp vhost]# curl -x127.0.0.1:80 www.baidu.com
 default server! 
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@lnmp vhost]# curl -x127.0.0.1:80 www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html>................

SSL

[root@lnmp ~]# rpm -qa  openssl
openssl-1.0.2k-21.el7_9.x86_64
[root@lnmp ~]# cd /usr/local/nginx/conf/
[root@lnmp conf]# openssl genrsa -des3 -out tmp.key 2048
Generating RSA private key, 2048 bit long modulus
..............................+++
.........................................+++
e is 65537 (0x10001)
Enter pass phrase for tmp.key:
Verifying - Enter pass phrase for tmp.key:
[root@lnmp conf]# ls
fastcgi.conf            htpasswd    mime.types.default  scgi_params.default   vhost
fastcgi.conf.default    koi-utf     nginx.conf          tmp.key               win-utf
fastcgi_params          koi-win     nginx.conf.default  uwsgi_params
fastcgi_params.default  mime.types  scgi_params         uwsgi_params.default
[root@lnmp conf]# rm -rf tmp.key
[root@lnmp conf]# openssl req -new -key aminglinux.key -out aminglinux.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:66
State or Province Name (full name) []:bj
Locality Name (eg, city) [Default City]:bj
Organization Name (eg, company) [Default Company Ltd]:cn
Organizational Unit Name (eg, section) []:cn
Common Name (eg, your name or your server's hostname) []:cn
Email Address []:wsw@163.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:1234
[root@lnmp conf]# openssl x509 -req -days 365 -in aminglinux.csr -signkey aminglinux.key -out aminglinux.crt
Signature ok
subject=/C=66/ST=bj/L=bj/O=cn/OU=cn/CN=cn/emailAddress=wsw@163.com
Getting Private key

[root@lnmp conf]# vim /usr/local/nginx/conf/vhost/ssl.conf
server
{
    listen 443;
    server_name 1234.com;
    index index.html index.php;
    root /data/wwwroot/1234.com;
    ssl on;
    ssl_certificate aminglinux.crt;
    ssl_certificate_key aminglinux.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
[root@lnmp conf]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/ssl.conf:7
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

[root@lnmp conf]# cd /usr/local/src/
[root@lnmp src]# ls
nginx-1.17.8  php-5.6.30
[root@lnmp src]# cd nginx-1.17.8/
[root@lnmp nginx-1.17.8]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
[root@lnmp nginx-1.17.8]# ./configure --help |grep ssl
  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --with-stream_ssl_module           enable ngx_stream_ssl_module
  --with-stream_ssl_preread_module   enable ngx_stream_ssl_preread_module
  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL
[root@lnmp nginx-1.17.8]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

[root@lnmp nginx-1.17.8]# make && make install

[root@lnmp nginx-1.17.8]# /etc/init.d/nginx restart
Restarting nginx (via systemctl):                          [  确定  ]

[root@lnmp nginx-1.17.8]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1090/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      2871/nginx: master  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2871/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      941/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1090/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      12138/mysqld        
tcp6       0      0 :::22                   :::*                    LISTEN      941/sshd      

[root@lnmp nginx-1.17.8]# mkdir -p /data/nginx/1234.com
[root@lnmp nginx-1.17.8]# echo "ssl test" > /data/nginx/1234.com/index.html

在windows的hosts
文件中加入 对应的域名 测试