1. 程式人生 > >nginx 實現https及代理springboot jar包

nginx 實現https及代理springboot jar包

  1. 首先,需要在阿里雲申請免費一年的ssl服務
  2. 開啟管理控制檯-證書服務,下載證書for nginx
  3. 在伺服器Nginx的安裝目錄下建立cert目錄,並且將下載的全部檔案拷貝到cert目錄中(一個key檔案和一個pem檔案)
  4. 配置伺服器nginx下nginx.config
server {
        listen 443;
        server_name 你的域名;
        ssl on;     
        ssl_certificate   cert/你的證書.pem;
        ssl_certificate_key  cert/你的證書.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
                //你的專案埠號
            proxy_pass http://127.0.0.1:9999/;
            proxy_redirect off;
        }
    }

spring boot pom設定

    <groupId>com.xxxxxx</groupId>
    <artifactId>xxxxxxxxxxxxxxxx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>


*********

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>

在專案根目錄下執行 mvn clean package打包jar,打好的包在target下,將其上傳伺服器的某個目錄 執行專案方式

  1. java -jar xxxxxxxxxxxxxxxx.jar視窗關閉後就停止,顯然不行

  2. nohup java -jar XXX.jar >temp.txt & 最後的&表示後臺執行,並將console列印到temp.txt下,可通過jobs命令檢視後臺執行任務 jobs 那麼就會列出所有後臺執行的作業,並且每個作業前面都有個編號。 如果想將某個作業調回前臺控制,只需要 fg + 編號即可。 fg 23 檢視某端口占用的執行緒的pid netstat -nlp |grep :9181

  3. 註冊服務 通過init.d 註冊sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp,最後的那個myapp就是你要註冊的服務名,這個命令實際是軟連線,然後通過service myapp start|stop|restart管理就行。

上述最後一種方式是最好的,也是官方推薦的方法,但我怎麼試也不行,最後用第二種方式啟動了。以後再研究吧。 以上。