Linux 安装 nginx

204 阅读1分钟

1.创建基础目录(已经有的话,请跳过)

# 用来存储配置文件
mkdir -p /opt/config
# 用来存储日志
mkdir -p /opt/logs
# sh脚本
mkdir -p /opt/sh

2. 下载解压nginx(复制全部,粘贴运行就好了)

cd /opt
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar -xzvf nginx-1.22.1.tar.gz
cd nginx-1.22.1

3. 执行安装(复制全部,粘贴运行就好了)

# centos
yum install -y gcc pcre pcre-devel zlib openssl openssl-devel
# ubuntu
sudo apt install gcc libpcre3 libpcre3-dev install zlib1g zlib1g-dev openssl libssl-dev
cd /opt/nginx-1.22.1
./configure --prefix=/opt/nginx --with-http_ssl_module
make install

# 设置环境变量
sudo cat <<'EOF'>> /etc/profile 
export PATH=$PATH:/opt/nginx/sbin 
EOF

source /etc/profile

4. 设置nginx自启文件(复制全部,粘贴运行就好了)

mkdir -p /opt/config/nginx
sudo cat <<'EOF'> /opt/config/nginx/nginx.service
[Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/opt/nginx/sbin/nginx restart
ExecStop=/opt/nginx/sbin/nginx  stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
 
sudo cp /opt/config/nginx/nginx.service /lib/systemd/system/nginx.service

5. 编写nginx配置(复制全部,粘贴运行就好了)

mkdir -p /opt/logs/nginx
mkdir -p /opt/config/nginx/
mkdir -p /opt/config/nginx/conf.d
sudo cat <<'EOF'> /opt/nginx/conf/nginx.conf
#user root;
worker_processes  auto;
 
error_log  logs/error.log warn;
#pid        /var/run/nginx.pid;
 
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  65535;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    fastcgi_intercept_errors on;
 
    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;
    limit_conn_zone $binary_remote_addr zone=conn:10m;
    limit_req_zone $binary_remote_addr zone=allips:10m rate=50r/s;
 
    server_names_hash_bucket_size 128;
    client_header_buffer_size 128k;
    large_client_header_buffers 4 128k;
    client_max_body_size 20m;
    client_body_timeout 120;
    server_tokens off;
    sendfile        on;
    tcp_nopush     on;
 
    keepalive_timeout  65;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_comp_level 2;
    gzip_vary on;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    
    include /opt/config/nginx/conf.d/*.conf;
}
EOF
 
# 软链
sudo ln -s /opt/nginx/conf/nginx.conf /opt/config/nginx/

6. 编写80监听转发配置(复制全部,粘贴运行就好了)

sudo cat <<'EOF'> /opt/config/nginx/conf.d/nginx.conf
# 80端口转向443
#server {
#  listen 80;
#  server_name 域名.cn www.域名.cn;
#  return 301 https://www.域名.cn$request_uri;
#}

server {
        listen       80 default_server;
        #listen       443 ssl;
        #server_name  www.域名.cn;
        server_name  localhost;
        root /opt/nginx/html;
        index index.html;
        add_header Strict-Transport-Security "max-age=31536000";

         # 配置https
         #ssl_certificate /opt/nginx/cert/www.域名.cn_bundle.crt;
         #ssl_certificate_key /opt/nginx/cert/www.域名.cn.key;
         #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
         #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
         #ssl_prefer_server_ciphers on;
         #ssl_session_cache   shared:SSL:10m;
         #ssl_session_timeout 10m;
         #ssl_buffer_size 1400;
         
        # 接口访问配置
        #location /api {
        #       proxy_pass http://127.0.0.1:8080;
	#	proxy_http_version 1.1;
        #       proxy_connect_timeout 60s;
        #       proxy_read_timeout 60s;
        #       proxy_send_timeout 60s;
        #       proxy_buffer_size 512k;
        #       proxy_buffering on;
        #       proxy_buffers 8 512k;
        #       proxy_busy_buffers_size 1024k;
        #       proxy_max_temp_file_size 100M;
	#	proxy_redirect off;
        #       proxy_set_header Host $host;
        #       proxy_set_header X-real-ip $remote_addr;
        #       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #       proxy_set_header Upgrade $http_upgrade;
        #       proxy_set_header Connection 'upgrade';
        #}

}
EOF

systemctl enable nginx.service
systemctl start nginx.service
service nginx status